WO2022123172A1 - Procédés de détermination d'une structure anonyme de données, procédés de comptage de données, dispositif et système pour la mise en œuvre de tels procédés - Google Patents

Procédés de détermination d'une structure anonyme de données, procédés de comptage de données, dispositif et système pour la mise en œuvre de tels procédés Download PDF

Info

Publication number
WO2022123172A1
WO2022123172A1 PCT/FR2021/052231 FR2021052231W WO2022123172A1 WO 2022123172 A1 WO2022123172 A1 WO 2022123172A1 FR 2021052231 W FR2021052231 W FR 2021052231W WO 2022123172 A1 WO2022123172 A1 WO 2022123172A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
value
equal
values
individual
Prior art date
Application number
PCT/FR2021/052231
Other languages
English (en)
Inventor
Baptiste OLIVIER
Original Assignee
Orange
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Orange filed Critical Orange
Publication of WO2022123172A1 publication Critical patent/WO2022123172A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Definitions

  • the present invention belongs to the general field of information processing. More particularly, it relates to methods for determining anonymous data structures from "personal" data, as well as methods for counting distinct elements in sets of personal data. It also relates to a processing device and a computer system configured to implement said methods.
  • Personal data generally means data relating to persons identified directly or indirectly.
  • Personal data can be of different natures, and concern either natural or legal persons. These include, for example, medical data, university data, data which reflect certain characteristics of individuals acquired on or via one or more communication networks, such as data from a social graph of individuals representing a network of connections and relationships of these individuals (commonly referred to as "social network"), data extracted from call reports made in a telecommunications network (representative of the mobility of individuals between the various relay antennas of the network), data browsing of individuals on the public Internet network (and in particular the sites visited and transitions from one site to another), data relating to the use by individuals of various connected objects, etc.
  • an example of application can consist in analyzing data structures obtained after anonymization of telephone numbers of individuals registered for a determined period in a train station (in other words, in this example of application, an event carried out by an individual consists of a telephone call made or received from said station).
  • a KMV structure although more compact (only the smallest k hash values are contained in a KMV structure), inherits the same anonymization disadvantage as the one mentioned above for a Bloom filter.
  • the objective of the present invention is to remedy all or part of the drawbacks of the prior art, in particular those set out above, by proposing a solution which makes it possible, in comparison with the solutions of the state of the art, to achieve counting operations aimed at estimating the number of distinct elements in datasets, especially in intersections and unions of datasets, with a better compromise in terms of compactness (number of data processed to provide an excellent estimate counting) and a strong guarantee of confidentiality.
  • the invention relates to a method for determining, called "first method", a data structure from at least one datum d, said at least one datum being personal datum relating to an individual and stored during a storage process of determined duration following the occurrence of an event by said individual. Furthermore, said method comprises a step of initializing a data structure L to an empty set as well as a set E_DET of steps of:
  • h is a hash function with discrete values between 0 and 1
  • M being the cardinal of the image of the hash function h, and r being an upper bound of the number of times the datum d can be stored during said duration, and E being a strictly positive number,
  • V is a uniform random variable independent of b, and, if the value W_ ⁇ d ⁇ does not belong to the structure L,
  • said first method makes it possible to obtain a data structure L that is more compact than the set of data from which it is derived, and formed solely of values distinct from each other, while ensuring differential confidentiality of order E to these values (because of the interval in which the parameter p is chosen).
  • such a data structure L differs from a conventional structure of the KMV type insofar as the presence of a datum in said structure L is guaranteed with a probability p (which consequently leads to ensuring differential confidentiality of order c), where the KMV structure comprises, by construction, all the hash values of the distinct values of the set of data considered at the start.
  • the data structure L obtained by means of the first method has a much better level of confidentiality than that offered by a conventional KMV structure.
  • the gain in compactness procured by obtaining said data structure L offers the possibility of carrying out counting operations (estimating the number of distinct elements in a set of data, in a union of sets of data or even in an intersection of data sets) in a very efficient way (speed of calculations, gain in memory storage, etc.).
  • the determination method may also comprise one or more of the following characteristics, taken in isolation or in any technically possible combination.
  • the data structure L is determined from a plurality of data, the steps of said set E_DET of steps being iterated for each data of said plurality of data, the data structure considered for the insertion of a datum during a current iteration of the set of steps E_DET corresponding to the data structure into which a datum was inserted during an iteration of the set of steps E_DET preceding said iteration current.
  • said E_DET set of steps is implemented:
  • said method comprises, during the execution of the step of insertion by replacement, a step of incrementing a value called "counting value" N, said counting value N being representative, at the end of the process, of the total number of times said step of inserting by replacing has been executed during the implementation of the method
  • said counting value N is initialized to zero or else initialized to a realization of a centered Laplace random variable.
  • the invention relates to a method for determining, called “second method", a data structure, called “second data structure” L2, from a first data structure L1 obtained by application of 'an algorithm of minimum k'-values to data, a datum being personal datum relating to an individual and stored during a memorization process of determined duration following the occurrence of an event by said individual, the setting implementation of said minimal k'-value algorithm using a hash function h with discrete values between 0 and 1.
  • said method comprises steps of:
  • M being the cardinal of the image of the hash function h
  • E being a strictly positive number
  • D3 selection of a number D3 of smallest values among said D2 sampled values, D3 being equal to the integer part of the product [1-p] x k, where k is a given number less than k',
  • the invention relates to a method for inserting at least one datum into a data structure L, said at least one datum being personal datum relating to an individual and stored during a memorization process of fixed duration following the occurrence of an event by said individual. Furthermore, said method comprises steps of:
  • Said third method inherits the same advantages as those mentioned above with reference to said first method.
  • the insertion method may also include one or more of the following characteristics, taken in isolation or in any technically possible combination.
  • a plurality of data is considered for insertion into the structure L, said implementation step being iterated for each of the data to be inserted, the data structure considered for the insertion of a datum during a current iteration of the implementation step corresponding to the data structure into which a datum has been inserted during an iteration of the implementation step preceding said current iteration.
  • said set identical to said set E_DET of steps of the first determination method is implemented:
  • the insertion method when the data structure L obtained has been determined according to a first determination method according to the first aspect, so as to obtain a counting value N corresponding to the total number of times step d insertion by replacement has been executed, the insertion method also comprises, during the execution of the step identical to the step of insertion by replacement of said first determination method, a step of incrementing said value of count n.
  • the invention relates to a method for estimating the number of distinct data in a set of data, a data being personal data relating to an individual and stored during a storage process of determined duration following the realization of an event by said individual. Said method comprises steps of:
  • r_moy is equal to the integer part of the quotient of N by Q.
  • the invention relates to a method for estimating the number of distinct data in a union of a plurality of sets of data, one data being personal data relating to an individual and stored during a process of memorization of determined duration following the realization of an event by said individual. Said method comprises steps of:
  • r_moy is equal to the integer part of the quotient of N_SUM by QJJNION.
  • the invention relates to a method for estimating the number of distinct data in an intersection of a plurality of sets of data, one data being personal data relating to an individual and stored during a process of memorization of determined duration following the realization of an event by said individual. Said method comprises steps of:
  • an estimator G_INTER of the number of distinct data of said intersection of sets of data as a function of Q_INTER and QJJNION are T in number and respectively associated with parameters r_l,..., r_T, the cardinality of a data structure associated with a set AJ being equal to kj, and the estimator G_INTER having the expression: expression in which:
  • the parameter rj of each set AJ is equal to the integer part of the quotient of NJ by a value QJ, said value QJ being equal to the quotient of kJ-1 by the largest value of the data structure obtained for said set AJ.
  • the estimation methods as described previously offer additional functions for calculating intersection and union cardinals on user data sets while guaranteeing protection of the privacy of these users. Such an advantage is not offered by solutions known from the prior art.
  • the first, second and third methods form alternative solutions to the determination of the same data structure.
  • a data structure constitutes a particular technical element on which the estimation methods as described above are based for estimating the number of distinct elements in sets of data, in particular in intersections and unions of sets of data, with a better compromise in terms of compactness and a strong guarantee of confidentiality.
  • the different methods of the invention are linked together by the same general inventive concept consisting of the determination and use of a data structure according to the invention to carry out the counting operations in a precise and confidential manner. in question.
  • the invention relates to a computer program comprising instructions for the implementation of any of the methods as described above when said computer program is executed by a computer.
  • This program may use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in partially compiled form, or in any other desirable form.
  • the invention relates to a computer-readable information or recording medium on which a computer program according to the seventh aspect is recorded.
  • the information or recording medium can be any entity or device capable of storing the program.
  • the medium may include a storage medium, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or even a magnetic recording medium, for example a floppy disk or a disk. hard.
  • the information or recording medium can be a transmissible medium such as an electrical or optical signal, which can be conveyed via an electrical or optical cable, by radio or by other means.
  • the program according to the seventh aspect can in particular be downloaded from an Internet-type network.
  • the information or recording medium may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
  • the invention relates to a processing device comprising means configured to implement a method as described above.
  • the invention relates to a computer system comprising:
  • a database in which is stored at least one personal data relating to an individual, said at least one data having been stored during a storage process of determined duration following the occurrence of an event by said individual,
  • FIG. 1 schematically shows, in its environment, a particular embodiment of a computer system according to the invention
  • FIG. 2 schematically shows an example of hardware architecture of a processing device belonging to the computer system of Figure 1;
  • FIG. 3 shows in the form of a flowchart, the main steps of a method, called "first method", for determining a data structure according to the invention
  • FIG. 4 represents, in the form of a flowchart, the main steps of a process, referred to as the “second process”, for determining a data structure according to the invention
  • FIG. 5 represents, in the form of a flowchart, the main steps of a process, referred to as a “third process”, for inserting at least one datum into a data structure according to the invention
  • FIG. 6 represents, in the form of a flowchart, the main steps of a process, referred to as the “fourth process”, for estimating the number of distinct data items in a set of data items according to the invention
  • FIG. 7 represents, in the form of a flowchart, the main steps of a process, referred to as the “fifth process”, for estimating the number of distinct data items in a union of data sets according to the invention
  • FIG. 8 represents, in the form of a flowchart, the main steps of a method, called “fourth method”, for estimating the number of distinct data in an intersection of a set of data according to the invention.
  • FIG. 1 schematically represents, in its environment, a particular embodiment of a computer system 10 according to the invention.
  • the computer system 10 comprises a processing device 11 configured to carry out processing operations making it possible to anonymize one or more sets of data (a set may comprise one or more data), as well as to perform counting operations of distinct elements in such data sets, by implementing various methods according to the invention and described in more detail later.
  • the data considered in the context of the present invention correspond to data relating to one or more individuals, and stored during a storage process of determined duration following the occurrence of an event by said individual(s). Furthermore, the data set(s) from which the methods according to the invention are implemented are themselves included in a more general data set and denoted “X” (X is therefore itself a data set ) which includes the personal data of all individuals likely to carry out the said event during the said period.
  • the personal data processed by the computer system 10 are extracted from traces of mobility identified in a mobile telecommunications network for a plurality of individuals. Such traces of mobility are conventionally reported in call reports established by the network, and translate the mobility of individuals during communications established on the mobile telecommunications network between different relay antennas of the network, and this over a period of time. given. More specifically, it is considered here that the personal data processed correspond to mobile telephone numbers belonging to one or more individuals, these telephone numbers having been stored in a database 12 illustrated in FIG. 1, after said individuals carried out one or more telephone calls even though they were in a train station for a given period of time, for example between 4 p.m. and 8 p.m.
  • an event carried out by an individual consists of a telephone call made or received in a train station, and that the memorization process in question consists of storing the number telephone number of this individual in the database 12 during the period of time concerned.
  • a set of data intended to be used in a method according to the invention corresponds to a set of telephone numbers. It is also noted that a telephone number may appear several times in such a set of data if the individual associated with this telephone number has made and/or received several calls in the station during said period of time.
  • the set X corresponds, in this exemplary implementation, to all the telephone numbers of individuals likely to make and/or receive a telephone call in said station. In practice, the set X is made up of the numbers of all the inhabitants of the town in which the station in question is located. But there is also nothing to exclude considering a larger set X, such as, for example, formed of the telephone numbers of individuals living in the country in which said station is located.
  • FIG. 2 schematically represents an example of hardware architecture of the processing device 11 belonging to the computer system 10 of FIG. 1, for the implementation of various methods according to the invention.
  • the processing device 11 has the hardware architecture of a computer.
  • the processing device 11 comprises, in particular, a processor 1, a random access memory 2, a read only memory 3 and a non-volatile memory 4. It also comprises a communication module 5.
  • the read only memory 3 of the processing device 11 constitutes a recording medium in accordance with the invention, readable by the processor 1 and on which is recorded a plurality of computer programs PROG_1, PROG_2, PROG_3, PROG_4, PROG_5, PROG_6 conforming to the invention, comprising instructions for the execution of process steps according to the invention.
  • Each of the programs PROGJ i being an integer index ranging from 1 to 6, defines at least one functional module of the processing device 11, which relies on or controls the hardware elements 1 to 5 of the processing device 11 mentioned above.
  • the functions executed by such modules are specified below in connection with the description of the methods that can be implemented when the instructions (in code form) of said PROGJ programs are executed by processor 1.
  • the communication module 5 enables the processing device 11 to communicate with the database 12, and in particular to access the personal data stored therein. It may include, for example, a network card or any other means making it possible to connect to a communication network to which the processing device 11 and the database 12 belong, or even to communicate on a digital data bus connecting the processing device processing 11 to database 12.
  • the database 12 corresponds to a distinct element of the processing device 11. It should however be noted that this is only a variant of implementation of the invention, and that nothing excludes considering that the database 12 is for example stored directly in a memory of the processing device 11, for example in its non-volatile memory 4.
  • FIG. 3 represents, in the form of a flowchart, the main steps of a determination method according to the invention, called “first method”.
  • the instructions dedicated to the execution of the steps of the first method are contained in the program PROG_1.
  • said first determination method consists in generating, from a set A of personal data, a data structure guaranteeing differential confidentiality of order E of said set A, and from which it is possible to carry out counting operations of distinct elements in a particularly effective manner.
  • the so-called “differential privacy” anonymization method more commonly referred to as “differential privacy” or even “differential privacy” in English, is well known to those skilled in the art. It makes it possible to anonymize data and is particularly appreciated because it makes it possible to formally and rigorously quantify the level of anonymity obtained, in other words, the risk of re-identifying from the anonymous data obtained (ie the data contained in the structure of data generated by means of the first determination method) the personal data relating to the individuals involved. This advantageously offers the possibility of controlling the compromise between the usefulness of the anonymous data obtained and the level of guaranteed anonymity.
  • the measurement of the level of anonymity is carried out by means of a parameter, denoted E in the context of the present invention, and reflecting the fact that two data structures generated by means of said first method have almost the same law of probability if the sets of data supplied as input to the first method are close, that is to say differ by the contribution of a single datum.
  • the "almost" is measured by said parameter c: the smaller c, the closer the probability laws and the more difficult it is to detect the participation of a particular individual in the data structures (therefore the better the anonymity achieved ), which is the intended purpose of differential privacy.
  • the parameter c and the anonymity achieved by the algorithm vary in the opposite direction, i.e. the smaller c is, the better the anonymity guaranteed by the algorithm.
  • Said first method firstly comprises a step E10 of initializing a data structure L to an empty set, said initialization step E10 is implemented by an initialization module (not shown in the figures) equipping the determination device 11 and configured for this purpose.
  • step E10 is therefore to create a structure capable of receiving data.
  • the implementation of said step E10 consists in instantiating an empty list.
  • Said first method also comprises a set E_DET of steps implemented for each datum of set A.
  • a datum denoted "d" of the set a. Therefore, for said datum d, said set of steps E_DET includes a step E_DET_10 for determining a value W_ ⁇ d ⁇ equal to bxh(d) + (1-b) xh(V), where:
  • h is a hash function defined on the set X and with discrete values in the interval [0,1], for example with values uniformly distributed between 0 and 1,
  • M being the cardinal of the image of the hash function h, and r being an upper bound of the number of times the datum d can be stored during said duration
  • V is a uniform random variable on the set X and independent of b.
  • Said step E_DET_10 is implemented by a determination module (not represented in the figures) equipping the determination device 11 and configured for this purpose.
  • the value of the parameter r intervening in the framing of the parameter p is determined by the application envisaged for said first method.
  • the parameter r can for example be set at 5. It is indeed reasonable to think that an individual does not pass and/or does not receive more than five telephone calls in the space of four hours in said station.
  • the value of the parameter M intervening in the framing of the parameter p is also determined by the application envisaged for said first method.
  • the parameter M can for example be fixed at one million.
  • this value preferably being at least of the order of the square of the cardinality of the set X, so as to avoid any risk of collisions in the image of the hash function h (such collisions possibly being the source of cardinal estimation errors for estimation methods according to the invention which are described in more detail later).
  • the framework given above for the parameter p translates the level of confidentiality which it is desired to grant to the data forming the data structure obtained at the end of said first method. More precisely, the closer p is to the value 1/2, the more the data structure obtained at the end of the first process protects the data that it contains against a risk of re-identification.
  • Said set E_DET of steps also comprises, for said datum d, a first test step E_DET_20 consisting in verifying whether or not the value W_ ⁇ d ⁇ belongs to the structure L determined until then.
  • Said first step E_DET_20 is implemented by a first test module (not shown in the figures) equipping the determination device 11 and configured for this purpose.
  • said set E_DET of steps comprises a second test step E_DET_30 consisting in checking whether the cardinality of said structure L is less than a given number k.
  • Said second step E_DET_30 is implemented by a second test module (not shown in the figures) equipping the determination device 11 and configured for this purpose.
  • the set E_DET of steps includes a step E_DET_40 for inserting the value W_ ⁇ d ⁇ into the structure L.
  • said set E_DET of steps comprises a third test step E_DET_50 consisting in checking whether the value W_ ⁇ d ⁇ is less than the largest value of the structure L up to then determined.
  • Said third step E_DET_50 is implemented by a third test module (not shown in the figures) equipping the determination device 11 and configured for this purpose.
  • the set of steps E_DET includes a step E_DET_60 for inserting the value W_ ⁇ d ⁇ in structure L by replacing said largest value.
  • Said set E_DET of steps has been described so far for a single datum d belonging to set A.
  • the other data belonging to set A are treated in a similar way, namely that the steps of said set E_DET d' steps are iterated for each of said other data of set A.
  • the executions of these iterations are carried out in such a way that the data structure considered for the insertion of a datum during a current iteration of the set of steps E_DET corresponds to the structure of data into which a data item was inserted during an iteration of the set of steps E_DET preceding said current iteration.
  • the number k corresponds to a size that should not be exceeded for said structure L. It is therefore a fixed number, and advantageously less than the cardinal of the data set A so that the data structure L obtained at the end of the first method is more compact than said data set A.
  • a data structure L is obtained that is more compact than the set A from which it is derived, formed solely of values distinct from one another, and which ensures differential confidentiality of order E to these values.
  • such a data structure L differs from a conventional structure of the KMV type insofar as the presence of a datum in said structure L is guaranteed with a probability p (which consequently leads to ensuring differential confidentiality of order c), where the KMV structure comprises, by construction, all the hash values of the distinct values of the set A.
  • the data structure L obtained by means of the first method has a much better level of confidentiality than that offered by a conventional KMV structure.
  • said first method also comprises, for each execution of step E_DET_60 of insertion by replacement, a step of incrementing a value called "counting value" N. From this manner, said count value N is representative, at the end of the method, of the total number of times said step of insertion by replacement has been executed during the implementation of the method.
  • Said counting value N is for example initialized to zero.
  • said counting value N is initialized to a realization of a centered Laplace random variable. Proceeding in this way proves to be advantageous insofar as the information obtained at the end of the first process, namely therefore a pair formed of the data structure L and of said counting value N, also respects the principle of confidentiality differential, as explained for example in the document by Dwork et al. already mentioned before.
  • the invention is not limited to obtaining a data structure L such as that described above from the first method alone.
  • the invention also proposes, according to another aspect, to generate, from a KMV structure previously determined for said set A, a more compact data structure than the set A from which it is derived, formed solely of values distinct from each other, and which ensures confidentiality of order E to these values.
  • the invention also proposes transforming a first structure L1 of the KMV type into a second structure L2 inheriting the same advantages as those described above with reference to the structure L obtained at the end of the first process.
  • FIG. 4 represents, in the form of a flowchart, the main steps of another method of determination according to the invention, called “second method”.
  • the instructions dedicated to the execution of the steps of the second method are contained in the program PROG_2.
  • a set A comprising a plurality of personal data.
  • a first data structure L1 has been obtained by applying a minimal k'-values algorithm to the data of the set A.
  • the implementation of said minimal k'-values algorithm uses conventionally a hash function h, this hash function being defined within the framework of the present invention on the set X (it is a hash function with discrete values in the interval [0,1], for example with values uniformly distributed between 0 and 1).
  • the number k′ corresponds, in a manner known per se, to the cardinality of the first structure L1, and is fixed according to the application envisaged.
  • said number k′ can be taken as equal to 100.
  • said second method comprises a step F10 of determining a value DI equal to the quotient of k′-1 by the greatest value of the first structure L1.
  • Said determination step F10 is implemented by a determination module (not shown in the figures) equipping the determination device 11 and configured for this purpose.
  • the second method also comprises a step F20 of uniform sampling of a number DI of values in the image of the hash function h, i.e. in h(X), so as to obtain a set L_D1 comprising said sampled values DI.
  • Said step F20 is implemented by a first sampling module (not shown in the figures) equipping the determination device 11 and configured for this purpose.
  • uniform sampling of a value from a set reference is conventionally made to the fact of randomly selecting a value from said set with a uniform probability equal to the inverse of the cardinality of said set. Consequently, the uniform sampling of a plurality of values in said set consists in repeating the preceding operation (with replacement) as many times as the number of values of said plurality of values.
  • the second method also comprises a step F30 uniform sampling of a number D2 of values in the set L_D1, D2 being equal to the integer part of the product of [1-p] by DI (ie [1-p] x D1) , with, in a manner similar to what was previously described in the context of the first method:
  • Said step F30 is implemented by a second sampling module (not represented in the figures) equipping the determination device 11 and configured for this purpose.
  • the framework proposed for the parameter p in the context of said second method differs significantly from that proposed in the context of the first method in that the parameter r is here considered equal to 1.
  • the second method uses as a starting point the LI structure which is a conventional KMV structure, the objective being, in particular, to transform this LI structure into another structure providing a guarantee of differential confidentiality.
  • the data contained in a conventional KMV structure, and therefore a fortiori in the L1 structure are all distinct from each other, so that the maximum number of times a data item can appear in the structure Ll is equal to 1.
  • Said second method also comprises a step F40 of selecting a number D3 of smallest values from among said D2 sampled values, D3 being equal to the integer part of the product [1-p] xk, where k is a given number less than k '.
  • Said step F40 is implemented by a first selection module (not shown in the figures) equipping the determination device 11 and configured for this purpose.
  • Said second method also comprises a step F50 of uniform sampling of a number D4 of values between the largest value of the first structure L1 and 1, so as to obtain a set L_D4 comprising said D4 sampled values, D4 being equal to D1 -k.
  • Said step F50 is implemented by a third sampling module (not represented in the figures) equipping the determination device 11 and configured for this purpose.
  • Said second method also comprises a step F60 of uniform sampling of a number D5 of values in the union of the sets L_D1 and L_D4, D5 being equal to the integer part of the product p ⁇ D1.
  • Said step F60 is implemented by a fourth sampling module (not shown in the figures) equipping the determination device 11 and configured for this purpose.
  • Said second method also includes a step F70 of selecting a number D6 of smallest values from among said D5 sampled values, D6 being equal to k-D3.
  • Said step F70 is implemented by a second selection module (not shown in the figures) equipping the determination device 11 and configured for this purpose.
  • Said second method also comprises a step F80 of grouping together said smallest values selected during said selections, so as to form a second structure L2.
  • this L2 data structure also has the advantage of being more compact than the L1 data structure since k is less than k′, while offering a much stronger guarantee of confidentiality.
  • the invention makes it possible to obtain a compact data structure and guaranteeing differential confidentiality of order c in two different ways: either by creating said data structure directly from a raw data set A, or by transforming a KMV type data structure itself obtained from said raw data set A.
  • the invention also makes it possible to enrich a data structure either obtained according to the first method or the second method, by inserting therein a newly stored datum in the database 12.
  • FIG. 5 represents, in the form of a flowchart, the main steps of a data insertion method according to the invention, called “third method”.
  • the instructions dedicated to the execution of the steps of the third method are contained in the program PROG_3.
  • d_new data newly stored in the database, for example following a new execution of the storage process, said d_new data again corresponding to personal data relating to an individual and stored following the occurrence of an event (telephone call made or received in the train station in this embodiment) by said individual.
  • Said third method consequently comprises a step G10 of obtaining a structure L determined according to said first method or else according to said second method.
  • said step G10 of obtaining consists of the implementation of the first method or else of the second method by considering the data of the set A.
  • said third method is based on a first structure obtained by applying an algorithm of minimum k'-values to the set A.
  • said data structure L has been determined by the determination device 11 by means of the first method or the second method, and prior to said obtaining step G10.
  • the term “obtaining” refers to an access to a memory of the determination device 11 in which the structure L was stored at the end of the first method or of the second method.
  • Said third method also includes a step G20 for implementing, for said data item d_new, a set of steps identical to the set E_DET of steps of said first method.
  • steps E_DET_10 to E_DET_60 are executed for said d_new datum.
  • said third method is not limited to the insertion of a single datum into the structure L. It is in fact possible to insert a plurality of data into the structure L by reiterating, in a manner similar to what was has been described for the first method, the steps of said set E_DET of steps for each of said data to be inserted. Furthermore, when the data structure L obtained has been determined according to the first method, so as to obtain a counting value N corresponding to the total number of times the step E_DET_60 of insertion by replacement has been executed during said first method , the third method may also comprise, according to a particular mode of implementation, an update of said counting value N.
  • said third method comprises, when implementing implementation of step G20, and for each execution of the step identical to step E_DET_60 of insertion by replacement of said first method, a step of incrementing said counting value N.
  • the count of the number of times an insertion by replacement is executed is continued.
  • the device in charge of the implementation of the third method is the determination device 11 of FIG. 1. That being so, nothing excludes considering that said third method is implemented by another device configured similarly to said determination device 11, after the latter has determined the structure L.
  • the term "obtaining" for said step G10 of obtaining refers to a transfer of data (transmission/reception) between the determining device 11 and said other device. This data transfer is implemented by the communication module 5 equipping the determination device 11 as well as by a similar communication module equipping said other device.
  • the invention is not limited to obtaining data structures by means of said first, second and third methods. Indeed, the invention also makes it possible, from a structure thus obtained, to carry out counting operations aimed at estimating the number of distinct elements in a set of data, said set of data being able in particular itself to result from union(s) or intersection(s) of data sets.
  • FIG. 6 represents, in the form of a flowchart, the main steps of a counting method according to the invention, called “fourth method”.
  • the instructions dedicated to the execution of the steps of the fourth method are contained in the program PROG_4.
  • Said fourth method consists in estimating the number of distinct data present in set A. To do this, said fourth method relies on a data structure determined for said set A by means of any one of said first, second and third processes. Thereafter, the number of distinct data present in the set A is estimated, in particular, from a quantity extracted from characteristics of the determined data structure.
  • set A comprising a plurality of personal data is again considered, as was the case for FIGS. 3, 4 and 5. It is then noted that, given the application context considered here, estimate the number of data distinct elements contained in set A amounts to estimating the number of individuals having made and/or received telephone calls in the station during the period of time concerned.
  • Said fourth method initially comprises a step H 10 for obtaining a data structure L for said set A, said data structure L being determined according to any one of said first, second and third method, and the cardinality of said structure obtained being equal to a number k.
  • step G10 of the third method as regards the meaning of the term “obtaining” apply here in the same way for step H10.
  • the determination of said data structure L is carried out by means of the parameter p, the value of which is chosen so as to be increased by a quantity which depends on the number M, and this so as to guarantee the differential confidentiality of order E of said data structure L.
  • Said step H20 is implemented by a determination module (not shown in the figures) equipping the determination device 11 and configured for this purpose.
  • Said fourth method also comprises a step H30 of determining an estimator G of the number of distinct data of the set A as a function of Q.
  • the estimator G is equal to g -1 (Q), where g 1 is an inverse function of a function g of unknown P and having the expression: expression in which:
  • the parameter r_moy considered in the expressions of the coefficients a and b can take different values depending on assumptions made on the application context envisaged for said fourth method.
  • the set A comprises several data whose respective numbers of occurrences in said set A differ from one another.
  • the parameter r_moy is equal to the integer part of the quotient of N by Q. It is recalled here that N corresponds to the counting value mentioned previously, which therefore implies that to implement the fourth method in the present example , it is important that the data structure L be determined by means of a mode of implementation of the first or third method making it possible to obtain said counting value N.
  • FIG. 7 represents, in the form of a flowchart, the main steps of another counting method according to the invention, called the “fifth method”.
  • the instructions dedicated to the execution of the steps of the fifth method are contained in the program PROG_5.
  • Said fifth method consists in estimating the number of distinct data present in the union of a plurality of data sets A_1, A_2,..., A_T, T being an integer strictly greater than 1 (a data set AJ , i being an integer index between 1 and T, corresponding for example to the set A considered for the fourth method).
  • Said fifth method initially comprises a step J 10 of obtaining, for each set of data AJ, of an LJ data structure determined according to any one of said first, second and third method, the cardinality of said LJ structure being equal to a number kj (it should be noted that the values k_l, ..., k_T can be, in whole or in part, distinct from one another).
  • step J 10 is similar to that of step H 10.
  • Said fifth method also comprises a step J20 of selecting a number D7 of smallest values of a so-called “union structure” structure L_UNION corresponding to the union of the data structures L_l, LJ',..., L_T .
  • the fifth method also comprises a step J30 of determining a value QJJNION equal to the quotient of D7-1 by the largest value among said D7 smaller values selected.
  • the fifth method also includes a step J40 of determining an estimator GJJNION of the number of distinct data of said union of data sets A_l, AJ',..., A_T as a function of QJJNION.
  • the estimator G_UNION is equal to g -1 (Q_UNION), where g 1 is an inverse function of a function g of unknown P and having the expression: expression in which:
  • the parameter r_moy considered in the expressions of the coefficients a and b can take different values depending on assumptions made on the application context envisaged for said fifth method.
  • a hypothesis is considered according to which said union of sets of data A_1, A_2,..., A_T comprises several data whose respective numbers of occurrences in said union differ from one another.
  • the parameter r_moy is equal to the integer part of the quotient of a value N_SUM by QJJNION, said value N_SUM being equal to the sum of the respective counting values of said data structures L_1, L_2,..., L_T.
  • Such a value of r_moy can also be considered in the case where the respective numbers of occurrences of the data of a set AJ are all equal to the same value rj, but there are at least two indices i and j (j being therefore also between 1 and T) such that rj differs from r .
  • the fact of considering a determination of the estimator GJJNION by means of said function g 1 constitutes only one particular variant of implementation of the fifth method.
  • This variant proves to be particularly advantageous for providing a very precise estimate of the number of distinct data present in the union of the data sets A_1, A_2,..., A_T.
  • the invention nevertheless covers other modes of implementation of the fifth method, such as for example a mode in which the estimator GJJNION is determined equal to Q_UNION.
  • FIG. 8 represents, in the form of a flowchart, the main steps of another counting method according to the invention, called the “sixth method”.
  • the instructions dedicated to the execution of the steps of the sixth method are contained in the program PROG_6.
  • Said sixth method consists in estimating the number of distinct data present in the intersection of a plurality of data sets A_1, A_2,..., A_T, T being an integer strictly greater than 1 (a data set AJ , i being an integer index between 1 and T, corresponding for example to the set A considered for the fourth method).
  • said sixth method advantageously makes it possible to estimate the number of people who have traveled between two stations during a given period of time. More particularly, if we consider a set A_1 (respectively A_2) comprising all the numbers (possibly with repetitions) of the individuals having made and/or received telephone calls in a first station (respectively in a second station), said sixth method makes it possible to estimate the number of distinct elements included in the intersection of A_1 and A_2.
  • Said sixth method initially comprises a step M10 of obtaining, for each set of data AJ, an LJ data structure determined according to any one of said first, second and third method, the cardinality of said LJ structure being equal to a number kj (note that the values k_l, ..., k_T can be, in whole or in part, distinct from each other).
  • step M10 is similar to that of step H 10 or even J 10.
  • the sixth method also includes a step M20 of selecting a number D7 of smallest values of a so-called "union structure" L_UNION corresponding to the union of the data structures L_l, LJ',..., L_T .
  • the sixth method also comprises a step M30 of determining a value QJJNION equal to the quotient of D7-1 by the largest value among said D7 smaller values selected.
  • the sixth method also comprises a step M40 of determining a value QJNTER equal to the quotient of the cardinality of a so-called “intersection structure” structure LJNTER corresponding to the intersection of said data structures L_1, LJ',..., L_T by D7.
  • the sixth method also includes a step M50 of determining an estimator GJNTER of the number of distinct data of said intersection of sets of data as a function of QJNTER and of Q_UNION.
  • the GJNTER estimator has the expression: QJNTER x QJJNION
  • the parameters r_1, r_2, r_T correspond to numbers respectively associated with the data sets A_1, A_2, A_T.
  • Each parameter rj considered in the expression of G_INTER can take different values according to assumptions made on the application context envisaged for said sixth method.
  • a hypothesis is considered according to which at least one set of data (among the sets of data A_l,..., A_T) comprises several data whose respective numbers of occurrences in said at least one set differ from each other .
  • the parameter rj of each set AJ is equal to the integer part of the quotient of NJ by a value QJ, said value QJ being equal to the quotient of kj-l by the largest value of the data structure LJ obtained for said set AJ. It is therefore noted that to implement the sixth method in the present example, it is important that each data structure LJ be determined by means of an implementation mode of the first or third method making it possible to obtain a counting value NJ associated with said LJ structure.
  • the fact of considering a determination of the estimator G_INTER according to said particular mode only constitutes a variant implementation of the sixth method.
  • This variant proves to be particularly advantageous for providing a very precise estimate of the number of distinct data present in the intersection of the data sets A_1, A_2,..., A_T.
  • the invention nevertheless covers other modes of implementation of the sixth method, such as for example a mode in which the estimator G_INTER is determined equal to the product between Q_INTER and QJJNION.
  • the various methods according to the invention have been described so far in relation to an application context in which personal data relating to an individual corresponds to a telephone number of said individual stored after the latter has made or received a call in a given station and over a given period of time.
  • the invention is not limited to such an application context, and can be implemented, ultimately, in any context in which it is useful to be able to estimate precisely, quickly and anonymously, the number of distinct data in a dataset, in a union of datasets or even in an intersection of datasets.
  • the invention finds a particularly advantageous application in the statistical analysis of the frequentation of one or more geographical areas, so as to allow, for example, to dimension infrastructures according to flow of individuals, identify locations of interest based on individual profiles, etc.
  • the invention is not limited either to the storage of data corresponding to mobile telephone numbers.
  • the invention can for example be applied to the storage of data corresponding to connection information with a computer server, such as for example an Internet server so as to be able to carry out statistical analyzes of network traffic.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

L'invention concerne un procédé de détermination d'une structure de données à partir d'au moins une donnée personnelle d relative à un individu. Ledit procédé comporte une étape d'initialisation d'une structure de données L ainsi qu'un ensemble d'étapes de : - détermination d'une valeur W_{d} égale à b x h(d) + (1-b) x h(V), où h est une fonction de hachage, b est une variable de Bernoulli, V est une variable aléatoire uniforme indépendante de b, et, si la valeur W_{d} n'appartient pas à la structure L, - insertion de la valeur W_{d} dans la structure L si le cardinal de ladite structure L est inférieur à un nombre k donné, - sinon, si le cardinal de la structure L est supérieur à k et si la valeur W_{d} est inférieure à la plus grande valeur de la structure L, insertion de la valeur W_{d} dans la structure L par remplacement de ladite plus grande valeur.

Description

Procédés de détermination d'une structure anonyme de données, procédés de comptage de données, dispositif et système pour la mise en œuvre de tels procédés
La présente invention appartient au domaine général du traitement de l'information. Elle concerne plus particulièrement des procédés permettant de déterminer des structures anonymes de données à partir de données « personnelles », ainsi que des procédés permettant de compter des éléments distincts dans des ensembles de données personnelles. Elle concerne également un dispositif de traitement et un système informatique configurés pour mettre en œuvre lesdits procédés.
On entend généralement par « données personnelles » des données qui concernent des personnes identifiées directement ou indirectement.
Les données personnelles peuvent être de différentes natures, et concerner indifféremment des personnes physiques ou morales. Il s'agit par exemple de données médicales, de données universitaires, de données qui reflètent certaines caractéristiques d'individus acquises sur ou via un ou plusieurs réseaux de communication, telles que des données d'un graphe social d'individus représentant un réseau de connexions et de relations de ces individus (couramment désigné par « réseau social »), des données extraites de comptes rendus d'appels réalisés dans un réseau de télécommunications (représentatives de la mobilité des individus entre les différentes antennes relais du réseau), des données de navigation des individus sur le réseau public Internet (et notamment les sites visités et les transitions d'un site à l'autre), des données relatives à l'utilisation par des individus de divers objets connectés, etc.
On comprend bien dès lors que rendre publiques ce type de données peut porter atteinte à la vie privée des individus concernés. Or, avec le développement aujourd'hui des réseaux de télécommunications et des services de plus en plus nombreux qui s'appuient sur ces réseaux (réseaux sociaux, objets connectés, etc.), on assiste à une augmentation spectaculaire des données personnelles qui s'échangent via ou sur ces réseaux.
Il existe aujourd'hui, dans l'état de la technique, différentes méthodes permettant d'anonymiser (i.e. de rendre anonymes) des données personnelles mémorisées dans une base de données. Par opposition aux données personnelles, des données anonymes telles que celles qui peuvent être obtenues via ces méthodes désignent des données à partir desquelles il est impossible de : (i) cibler un individu, (ii) savoir si des données sont liées à un unique individu, et (iii) inférer des informations sur un individu. Ainsi, l'anonymisation de données consiste à modifier le contenu ou la structure des données personnelles afin de rendre difficile, au moins théoriquement, l'identification des individus concernés à partir des données anonymisées.
En ayant accès à de telles données anonymisées, par exemple si une entité qui en possède décide de les rendre publiques, il devient alors possible de réaliser des opérations de comptage avec un risque restreint de dévoiler des informations sensibles sur lesdits individus. En particulier, un intérêt certain est porté (en raison de grandes masses de données qu'il devient possible de collecter) à des opérations visant à compter le nombre de données distinctes dans un ensemble de données anonymisées, afin de réaliser des études statistiques sur des évènements réalisés par les individus concernés durant une durée déterminée.
A titre d'exemple nullement limitatif, de telles études statistiques peuvent concerner la caractérisation de flux de populations dans un espace géographique donné, par exemple pour déterminer quelles actions peuvent être mises en œuvre pour réguler de tels flux (modification d'une ou plusieurs signalisations, construction d'une ou plusieurs nouvelles infrastructures visant à faciliter les déplacements, etc.) ou bien encore par exemple pour évaluer l'attractivité dudit espace géographique. Ainsi, un exemple d'application peut consister à analyser des structures de données obtenues après anonymisation de numéro de téléphone d'individus enregistrés pendant une durée déterminée dans une gare de trains (autrement dit, dans cet exemple d'application, un évènement réalisé par un individu consiste en un appel téléphonique passé ou reçu depuis ladite gare).
Il convient de noter que la problématique du comptage de données anonymisées a déjà été étudiée abondamment. En particulier, il a déjà été proposé différentes méthodes pour construire des structures de données à partir desquelles il est possible de réaliser des opérations de comptage de manière relativement efficace. Ainsi, on connait par exemple les filtres de Bloom, les estimateurs de Flagolet-Martin ainsi que les structures dites de k-valeurs minimum (« k-minimum values » dans la littérature anglo-saxonne, encore abrégé « KMV »). De telles structures sont par exemples décrites dans le document : « Cardinality estimation : An experimental survey », Proceedings of the VLDB Endowment, 11(4) : 499-512, 2017.
Il n'en reste pas moins que chacune de ces structures présentent des désavantages. Ainsi, pour un ensemble de données personnelles donné, un filtre de Bloom contient l'ensemble des valeurs de hachage de ces données personnelles, ce qui ne permet pas de garantir une confidentialité très efficace face à une attaque par exemple de type force brute.
Une structure KMV, bien que plus compacte (seules les k plus petites valeurs de hachage sont contenues dans une structure KMV), hérite du même désavantage d'anonymisation que celui mentionné ci-avant pour un filtre de Bloom.
Enfin, en ce qui concerne un estimateur de Flagolet-Martin, celui-ci ne permet pas de réaliser des opérations de comptage de données distinctes dans des unions ou des intersections d'ensembles, et ce quel que soit le niveau d'anonymisation qu'un tel estimateur peut présenter. Or cela est particulièrement pénalisant lorsqu'il s'agit de réaliser des études statistiques faisant intervenir différents groupes d'individus (exemple : déterminer combien de personnes ont voyagé en train entre deux villes pendant une période donnée de la journée, à partir de deux ensembles de données, chaque ensemble contenant des données personnelles de personnes présentes dans une gare desdites deux villes). En définitive, il ressort de ce qui précède que les structures de données proposées jusqu'alors sont déficientes en ce qu'elles ne permettent pas de faire, de manière simultanée, des opérations de comptage de données distinctes dans des ensembles, et en particulier dans des intersections et des unions d'ensembles, et à la fois de contrôler le niveau d'anonymisation sur ces opérations.
La présente invention a pour objectif de remédier à tout ou partie des inconvénients de l'art antérieur, notamment ceux exposés ci-avant, en proposant une solution qui permette, en comparaison avec les solutions de l'état de la technique, de réaliser des opérations de comptage visant à estimer le nombre d'éléments distincts dans des ensembles de données, en particulier dans des intersections et des unions d'ensembles de données, avec un meilleur compromis en termes de compacité (nombre de données traitées pour fournir une excellente estimation de comptage) et de garantie forte de confidentialité.
A cet effet, et selon un premier aspect, l'invention concerne un procédé de détermination, dit « premier procédé », d'une structure de données à partir d'au moins une donnée d, ladite au moins une donnée étant une donnée personnelle relative à un individu et mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu. En outre, ledit procédé comporte une étape d'initialisation d'une structure de données L à un ensemble vide ainsi qu'un ensemble E_DET d'étapes de :
- détermination d'une valeur W_{d} égale à b x h(d) + (1-b) x h(V), où :
• h est une fonction de hachage à valeurs discrètes comprises entre 0 et 1,
• b est une variable de Bernoulli de paramètre p, avec
Figure imgf000005_0001
M étant le cardinal de l'image de la fonction de hachage h, et r étant un majorant du nombre de fois où la donnée d peut être mémorisée au cours de ladite durée, et E étant un nombre strictement positif,
• V est une variable aléatoire uniforme indépendante de b, et, si la valeur W_{d} n'appartient pas à la structure L,
- insertion de la valeur W_{d} dans la structure L si le cardinal de ladite structure L est inférieur à un nombre k donné, - sinon, si le cardinal de la structure L est supérieur à k et si la valeur W_{d} est inférieure à la plus grande valeur de la structure L, insertion de la valeur W_{d} dans la structure L par remplacement de ladite plus grande valeur
Ainsi, ledit premier procédé permet d'obtenir une structure de données L plus compacte que l'ensemble de données dont elle est issue, et formée uniquement de valeurs distinctes entre elles, tout en assurant une confidentialité différentielle d'ordre E à ces valeurs (en raison de l'intervalle dans lequel est choisi le paramètre p).
On note qu'une telle structure de données L diffère d'une structure conventionnelle de type KMV dans la mesure où la présence d'une donnée dans ladite structure L est garantie avec une probabilité p (ce qui conduit dès lors à assurer une confidentialité différentielle d'ordre c), là où la structure KMV comporte, par construction, toutes les valeurs de hachage des valeurs distinctes de l'ensemble de données considéré au départ. Ainsi, la structure de données L obtenue au moyen du premier procédé possède un niveau de confidentialité bien meilleure que celui proposé par une structure KMV conventionnelle.
On comprend par ailleurs que le gain en compacité procuré par l'obtention de ladite structure de données L offre la possibilité de réaliser des opérations de comptage (estimation du nombre d'éléments distincts dans un ensemble de données, dans une union d'ensembles de données ou bien encore dans une intersection d'ensembles de données) de manière très efficace (rapidité de calculs, gain de stockage en mémoire, etc.).
Dans des modes particuliers de mise en œuvre, le procédé de détermination peut comporter en outre l'une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles.
Dans des modes particuliers de mise en œuvre, la structure de données L est déterminée à partir d'une pluralité de données, les étapes dudit ensemble E_DET d'étapes étant itérées pour chaque donnée de ladite pluralité de données, la structure de données considérée pour l'insertion d'une donnée lors d'une itération courante de l'ensemble d'étapes E_DET correspondant à la structure de données dans laquelle a été insérée une donnée lors d'une itération de l'ensemble d' étapes E_DET précédant ladite itération courante.
Dans des modes particuliers de mise en œuvre, ledit ensemble E_DET d'étapes est mis en œuvre :
- après que toutes les données de ladite pluralité de données sont mémorisées, ou
- de manière dynamique, après chaque mémorisation d'une donnée de ladite pluralité de données.
Dans des modes particuliers de mise en œuvre, ledit procédé comporte, lors de l'exécution de l'étape d'insertion par remplacement, une étape d'incrémentation d'une valeur dite « valeur de dénombrement » N, ladite valeur de dénombrement N étant représentative, à l'issue du procédé, du nombre total de fois où ladite étape d'insertion par remplacement a été exécutée lors de la mise en œuvre du procédé
Dans des modes particuliers de mise en œuvre, ladite valeur de dénombrement N est initialisée à zéro ou bien initialisée à une réalisation d'une variable aléatoire de Laplace centrée.
Selon un deuxième aspect, l'invention concerne un procédé de détermination, dit « deuxième procédé », d'une structure de données, dite « deuxième structure de données » L2, à partir d'une première structure de données L1 obtenue par application d'un algorithme de k'-valeurs minimales à des données, une donnée étant une donnée personnelle relative à un individu et mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu, la mise en œuvre dudit algorithme de k'-valeurs minimales utilisant une fonction de hachage h à valeurs discrètes comprises entre 0 et 1. En outre, ledit procédé comporte des étapes de :
- détermination d'une valeur DI égale au quotient de k'-l par la plus grande valeur de la première structure Ll,
- échantillonnage uniforme d'un nombre DI de valeurs dans l'image de la fonction de hachage h, de sorte à obtenir un ensemble L_D1 comprenant lesdits DI valeurs échantillonnées,
- échantillonnage uniforme d'un nombre D2 de valeurs dans l'ensemble L_D1, D2 étant égal à la partie entière du produit [1-p] x Dl, avec
Figure imgf000007_0001
M étant le cardinal de l'image de la fonction de hachage h, et E étant un nombre strictement positif,
- sélection d'un nombre D3 de plus petites valeurs parmi lesdites D2 valeurs échantillonnées, D3 étant égal à la partie entière du produit [1-p] x k, où k est un nombre donné inférieur à k',
- échantillonnage uniforme d'un nombre D4 de valeurs entre la plus grande valeur de la première structure Ll et 1, de sorte à obtenir un ensemble L_D4 comprenant lesdits D4 valeurs échantillonnées, D4 étant égale à Dl-k,
- échantillonnage uniforme d'un nombre D5 de valeurs dans l'union des ensembles L_D1 et L_D4, D5 étant égal à la partie entière du produit p x Dl,
- sélection d'un nombre D6 de plus petites valeurs parmi lesdites D5 valeurs échantillonnées, D6 étant égal à k-D3,
- regroupement desdites plus petites valeurs sélectionnées lors desdites sélections, de sorte à former ladite deuxième structure L2. Ledit deuxième procédé hérite des mêmes avantages que ceux mentionnés ci-avant en référence audit premier procédé.
Selon un troisième aspect, l'invention concerne un procédé d'insertion d'au moins une donnée dans une structure de données L, ladite au moins une donnée étant une donnée personnelle relative à un individu et mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu. En outre, ledit procédé comporte des étapes de :
- obtention d'une structure de données L déterminée selon un premier procédé de détermination selon le premier aspect ou un deuxième procédé de détermination selon le deuxième aspect,
- mise en œuvre, pour ladite au moins une donnée à insérer, d'un ensemble d'étapes identique à l'ensemble E_DET d'étapes d'un premier procédé de détermination selon le premier aspect.
Ledit troisième procédé hérite des mêmes avantages que ceux mentionnés ci-avant en référence audit premier procédé.
Dans des modes particuliers de mise en œuvre, le procédé d'insertion peut comporter en outre l'une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles.
Dans des modes particuliers de mise en œuvre, une pluralité de données est considérée pour l'insertion dans la structure L, ladite étape de mise en œuvre étant itérée pour chacune des données à insérer, la structure de données considérée pour l'insertion d'une donnée lors d'une itération courante de l'étape de mise en œuvre correspondant à la structure de données dans laquelle a été insérée une donnée lors d'une itération de l'étape de mise en œuvre précédant ladite itération courante.
Dans des modes particuliers de mise en œuvre, ledit ensemble identique audit ensemble E_DET d'étapes du premier procédé de détermination est mis en œuvre :
- après que toutes les données de ladite pluralité de données sont mémorisées, ou
- de manière dynamique, après chaque mémorisation d'une donnée de ladite pluralité de données.
Dans des modes particuliers de mise en œuvre, lorsque la structure de données L obtenue a été déterminée selon un premier procédé de détermination selon le premier aspect, de sorte à obtenir une valeur de dénombrement N correspondant au nombre total de fois où l'étape d'insertion par remplacement a été exécutée, le procédé d'insertion comporte également, lors de l'exécution de l'étape identique à l'étape d'insertion par remplacement dudit premier procédé de détermination, une étape d'incrémentation de ladite valeur de dénombrement N.
Selon un quatrième aspect, l'invention concerne un procédé d'estimation du nombre de données distinctes dans un ensemble de données, une donnée étant une donnée personnelle relative à un individu et mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu. Ledit procédé comporte des étapes de :
- obtention d'une structure de données déterminée selon un procédé de détermination ou d'insertion tels que décrits précédemment, le cardinal de ladite structure obtenue étant égal à k,
- détermination d'une valeur Q égale au quotient de k-1 par la plus grande valeur de la structure de données obtenue,
- détermination d'un estimateur G du nombre de données distinctes de l'ensemble de données en fonction de Q.
Dans des modes particuliers de mise en œuvre, l'estimateur G est égal à g-1(Q), où g 1 est une fonction inverse d'une fonction g d'inconnue P et ayant pour expression : g(J3) = (M — /?) x p x a + /? x [b + (/? — 1) x a — (/? — 1) x a x b] expression dans laquelle :
Figure imgf000009_0001
• si les nombres d'occurrences respectifs des données dudit ensemble de données sont tous égaux à une même valeur R donnée, r_moy est égal à R,
• sinon, et si la structure de données est déterminée selon un premier procédé ou un procédé d'insertion tels que décrits précédemment, de sorte à obtenir une valeur de dénombre N, r_moy est égal à la partie entière du quotient de N par Q.
Selon un cinquième aspect, l'invention concerne un procédé d'estimation du nombre de données distinctes dans une union d'une pluralité d'ensembles de données, une donnée étant une donnée personnelle relative à un individu et mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu. Ledit procédé comporte des étapes de :
- obtention, pour chaque ensemble de données, d'une structure de données déterminée selon un procédé de détermination ou d'insertion tels que décrits précédemment,
- sélection d'un nombre D7 de plus petites valeurs d'une structure correspondant à l'union des structures de données obtenues, D7 étant égal à la plus petite valeur parmi les cardinaux respectifs desdites structures de données obtenues,
- détermination d'une valeur QJJNION égale au quotient de D7-1 par la plus grande valeur parmi lesdites plus petites valeurs sélectionnées, - détermination d'un estimateur GJJNION du nombre de données distinctes de ladite union d'ensembles de données en fonction de QJJNION.
Dans des modes particuliers de mise en œuvre, l'estimateur G_UNION est égal à g_1(Q_UNION), où g 1 est une fonction inverse d'une fonction g d'inconnue P et ayant pour expression : g(J3) = (M — /?) x p x a + /? x [b + (/? — 1) x a — (/? — 1) x a x b] expression dans laquelle :
Figure imgf000010_0001
• si les nombres d'occurrences respectifs des données desdits ensembles de données sont tous égaux à une même valeur R donnée, r_moy est égal à R,
• sinon, et si la structure de données est déterminée selon un premier procédé ou un procédé d'insertion tels que décrits précédemment, de sorte à obtenir une valeur N_SUM égale à la somme des valeurs de dénombrement respectives desdits structures de données, r_moy est égal à la partie entière du quotient de N_SUM par QJJNION.
Selon un sixième aspect, l'invention concerne un procédé d'estimation du nombre de données distinctes dans une intersection d'une pluralité d'ensembles de données, une donnée étant une donnée personnelle relative à un individu et mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu. Ledit procédé comporte des étapes de :
- obtention, pour chaque ensemble de données, d'une structure de données déterminée selon un procédé de détermination ou d'insertion tels que décrits précédemment,
- sélection d'un nombre D7 de plus petites valeurs d'une structure correspondant à l'union desdites structures de données obtenues, D7 étant égal à la plus petite valeur parmi les cardinaux respectifs desdites structures de données obtenues,
- détermination d'une valeur QJJNION égale au quotient de D7-1 par la plus grande valeur parmi lesdites plus petites valeurs sélectionnées,
- détermination d'une valeur QJNTER égale au quotient du cardinal d'une structure correspondant à l'intersection desdites structures de données obtenues par D7,
- détermination d'un estimateur G_INTER du nombre de données distinctes de ladite intersection d'ensembles de données en fonction de Q_INTER et QJJNION. Dans des modes particuliers de mise en œuvre, les ensembles de données, dits ensembles « A_l,..., A_T », sont au nombre de T et respectivement associés à des paramètres r_l,..., r_T, le cardinal d'une structure de données associée à un ensemble AJ étant égal à kj, et l'estimateur G_INTER ayant pour expression :
Figure imgf000011_0001
expression dans laquelle :
• si, pour chaque ensemble AJ, les nombres d'occurrences respectifs des données dudit ensemble AJ sont tous égaux à une même valeur RJ donnée, rj est égal à RJ,
• sinon, et si la structure de données est déterminée selon un premier procédé ou un procédé d'insertion tels que décrits précédemment, de sorte à obtenir pour chaque structure de donnée associée à un ensemble AJ une valeur de dénombrement NJ, le paramètre rj de chaque ensemble AJ est égal à la partie entière du quotient de NJ par une valeur QJ, ladite valeur QJ étant égale au quotient de kJ- 1 par la plus grande valeur de la structure de données obtenue pour ledit ensemble AJ.
Ainsi, les procédés d'estimation tels que décrits précédemment offrent des fonctionnalités supplémentaires de calculs de cardinaux d'intersections et d'union sur des ensembles de données d'utilisateurs tout en garantissant une protection de la vie privée ces utilisateurs. Un tel avantage n'est pas offert par des solutions connues de l'art antérieur.
Il importe de noter que les premier, deuxième et troisième procédés forment des solutions alternatives à la détermination d'une même structure de données. Une telle structure de données constitue un élément technique particulier sur lequel s'appuient les procédés d'estimation tels que décrits précédemment pour estimer le nombre d'éléments distincts dans des ensembles de données, en particulier dans des intersections et des unions d'ensembles de données, avec un meilleur compromis en termes de compacité et de garantie forte de confidentialité. Dit encore autrement, les différents procédés de l'invention sont liés entre eux par un même concept inventif général consistant en la détermination et l'utilisation d'une structure de données selon l'invention pour réaliser de manière précise et confidentielle les opérations de comptage en question.
Selon un septième aspect, l'invention concerne un programme d'ordinateur comportant des instructions pour la mise en œuvre de l'un quelconque des procédés tels que décrits précédemment lorsque ledit programme d'ordinateur est exécuté par un ordinateur.
Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. Selon un huitième aspect, l'invention concerne un support d'informations ou d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur selon le septième aspect.
Le support d'informations ou d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur.
D'autre part, le support d'informations ou d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon le septième aspect peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, le support d'informations ou d'enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.
Selon un neuvième aspect, l'invention concerne un dispositif de traitement comportant des moyens configurés pour mettre en œuvre un procédé tel que décrit précédemment.
Selon un dixième aspect, l'invention concerne un système informatique comportant :
- une base de données dans laquelle est mémorisée au moins une donnée personnelle relative à un individu, ladite au moins une donnée ayant été mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu,
- un dispositif de traitement selon le neuvième aspect.
D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci- dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures :
- la figure 1 représente schématiquement, dans son environnement, un mode particulier de réalisation d'un système informatique selon l'invention ;
- la figure 2 représente schématiquement un exemple d'architecture matérielle d'un dispositif de traitement appartenant au système informatique de la figure 1 ;
- la figure 3 représente sous forme d'ordinogramme, les principales étapes d'un procédé, dit « premier procédé », de détermination d'une structure de données selon l'invention ;
- la figure 4 représente, sous forme d'ordinogramme, les principales étapes d'un procédé, dit « deuxième procédé », de détermination d'une structure de données selon l'invention ; - la figure 5 représente, sous forme d'ordinogramme, les principales étapes d'un procédé, dit « troisième procédé », d'insertion d'au moins une donnée dans une structure de données selon l'invention ;
- la figure 6 représente, sous forme d'ordinogramme, les principales étapes d'un procédé, dit « quatrième procédé », d'estimation du nombre de données distinctes dans un ensemble de données selon l'invention ;
- la figure 7 représente, sous forme d'ordinogramme, les principales étapes d'un procédé, dit « cinquième procédé », d'estimation du nombre de données distinctes dans une union d'ensembles de données selon l'invention ;
- la figure 8 représente, sous forme d'ordinogramme, les principales étapes d'un procédé, dit « quatrième procédé », d'estimation du nombre de données distinctes dans une intersection d'un ensemble de données selon l'invention.
La figure 1 représente schématiquement, dans son environnement, un mode particulier de réalisation d'un système informatique 10 selon l'invention.
Dans le mode de réalisation de la figure 1, le système informatique 10 comporte un dispositif de traitement 11 configuré pour réaliser des traitements permettant d'anonymiser un ou plusieurs ensembles de données (un ensemble pouvant comporter une ou plusieurs données), ainsi que de réaliser des opérations de comptage d'éléments distincts dans de tels ensembles de données, en mettant en œuvre divers procédés selon l'invention et décrits plus en détails ultérieurement.
Les données considérées dans le cadre de la présente invention correspondent à des données relatives à un ou plusieurs individus, et mémorisées au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit ou lesdits individus. Par ailleurs, le ou les ensembles de données à partir desquels sont mis en œuvre les procédés selon l'invention sont eux-mêmes compris dans un ensemble de données plus général et noté « X » (X est donc lui-même un ensemble de données) qui regroupe les données personnelles de tous les individus susceptibles de réaliser ledit évènement pendant ladite durée.
Bien qu'aucune limitation ne soit attachée à la nature des données personnelles considérées et au contexte dans lequel elles ont été acquises, on considère dans le présent mode de réalisation que les données personnelles traitées par le système informatique 10 sont extraites de traces de mobilité identifiées dans un réseau de télécommunications mobiles pour une pluralité d'individus. De telles traces de mobilité sont classiquement remontées dans des comptes rendus d'appels établis par le réseau, et traduisent la mobilité des individus lors de communications établies sur le réseau de télécommunications mobile entre différentes antennes relais du réseau, et ce sur une période de temps donnée. De manière plus spécifique, on considère ici que les données personnelles traitées correspondent à des numéros de téléphone mobiles appartenant à un ou plusieurs individus, ces numéros de téléphone ayant été mémorisés dans une base de données 12 illustrée sur la figure 1, après que lesdits individus ont réalisé une ou plusieurs communications téléphoniques alors même qu'ils se trouvaient dans une gare de trains pendant une période de temps déterminée, par exemple entre 16h et 20h.
Autrement dit, pour cet exemple spécifique de mise en œuvre, on comprend qu'un évènement réalisé par un individu consiste en un appel téléphonique passé ou reçu dans une gare de trains, et que le processus de mémorisation en question consiste en le stockage du numéro de téléphone de cet individu dans la base de données 12 au cours de la période de temps concernée.
Dès lors, un ensemble de données destiné à être utilisé dans un procédé selon l'invention, pour cet exemple spécifique de mise en œuvre, correspond à un ensemble de numéros de téléphone. On note également qu'un numéro de téléphone peut apparaitre plusieurs fois dans un tel ensemble de données si l'individu associé à ce numéro de téléphone a passé et/ou reçu plusieurs appels dans la gare pendant ladite période de temps. Enfin, l'ensemble X correspond, dans cet exemple de mise en œuvre, à tous les numéros de téléphone des individus susceptibles de passer et/ou recevoir un appel téléphonique dans ladite gare. En pratique, l'ensemble X est formé des numéros de tous les habitants de la ville dans laquelle se trouve la gare en question. Mais rien n'exclut non plus de considérer un ensemble X plus grand, comme par exemple formé des numéros de téléphone des individus habitant dans le pays dans lequel se situe ladite gare.
Aucune limitation n'est attachée au nombre de gares pouvant être envisagé, comme cela est détaillé ci-après lors de la description de procédés permettant de fournir des estimations de comptage dans des unions et/ou intersections d'ensemble de données. Bien entendu, on comprend également que la période de temps allant de 16h à 20h (et donc de durée déterminée égale à 4h) n'est donnée ici qu'à titre d'exemple, et que tout autre valeur peut être envisagée.
De manière plus générale, le fait de considérer des données personnelles sous la forme de numéro de téléphone ne constitue qu'un exemple particulier d'application de l'invention, et d'autres exemples peuvent bien entendu être envisagés, comme cela est également décrit ultérieurement au travers de différentes applications techniques de l'invention.
La figure 2 représente schématiquement un exemple d'architecture matérielle du dispositif de traitement 11 appartenant au système informatique 10 de la figure 1, pour la mise en œuvre de différents procédés selon l'invention.
Tel qu'illustré par la figure 2, le dispositif de traitement 11 dispose de l'architecture matérielle d'un ordinateur. Ainsi, le dispositif de traitement 11 comporte, notamment, un processeur 1, une mémoire vive 2, une mémoire morte 3 et une mémoire non volatile 4. Il comporte en outre un module de communication 5. La mémoire morte 3 du dispositif de traitement 11 constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 1 et sur lequel est enregistré une pluralité de programmes d'ordinateur PROG_1, PROG_2, PROG_3, PROG_4, PROG_5, PROG_6 conformes à l'invention, comportant des instructions pour l'exécution d'étapes de procédé selon l'invention. Chacun des programmes PROGJ, i étant un indice entier allant de 1 à 6, définit au moins un module fonctionnel du dispositif de traitement 11, qui s'appuie ou commande les éléments matériels 1 à 5 du dispositif de traitement 11 cités précédemment. Les fonctions exécutées par de tels modules sont précisées ci-après en lien avec la description des procédés pouvant être mis en œuvre lorsque les instructions (sous forme de code) desdits programmes PROGJ sont exécutées par le processeur 1.
Le module de communication 5 permet au dispositif de traitement 11 de communiquer avec la base de données 12, et notamment d'accéder aux données personnelles qui y sont mémorisées. Il peut comprendre par exemple une carte réseau ou tout autre moyen permettant de se connecter à un réseau de communication auxquels appartiennent le dispositif de traitement 11 et la base de données 12, ou bien encore de communiquer sur un bus de données numériques reliant le dispositif de traitement 11 à la base de données 12.
On note que, dans le mode de réalisation de la figure 1, la base de données 12 correspond à un élément distinct du dispositif de traitement 11. Il convient toutefois de noter qu'il ne s'agit là que d'une variante d'implémentation de l'invention, et que rien n'exclut d'envisager que la base de données 12 soit par exemple stockée directement dans une mémoire du dispositif de traitement 11, par exemple dans sa mémoire non volatile 4.
La suite de la description vise à décrire les différents procédés pouvant être mis en œuvre par le dispositif de traitement 11 au moyen respectivement des programmes PROGJ. A cet effet, on considère désormais de manière nullement limitative que le ou les ensembles de données sur lesquels s'appuient ces différents procédés sont issus de la base de données 12 après la fin du processus de mémorisation envisagé au sens de l'invention.
Cela étant, il convient de noter que de telles dispositions ne sont en aucun cas limitatives de l'invention. En particulier, rien n'exclut d'envisager que lesdits procédés soient mis en œuvre de manière dynamique, en parallèle dudit processus de mémorisation et après chaque mémorisation d'une donnée dans la base de données 12.
La figure 3 représente, sous forme d'ordinogramme, les principales étapes d'un procédé de détermination selon l'invention, dit « premier procédé ». Les instructions dédiées à l'exécution des étapes du premier procédé sont contenues dans le programme PROG_1.
Dans son principe général, ledit premier procédé de détermination consiste à générer, à partir d'un ensemble A de données personnelles, une structure de données garantissant une confidentialité différentielle d'ordre E dudit ensemble A, et à partir de laquelle il est possible de réaliser des opérations de comptage d'éléments distincts de manière particulièrement efficace. La méthode d'anonymisation dite de « confidentialité différentielle », plus communément désignée par « privacy différentielle » ou encore par « differential privacy » en anglais, est bien connue de l'homme du métier. Elle permet d'anonymiser des données et est particulièrement appréciée car elle permet de quantifier formellement et rigoureusement le niveau d'anonymat obtenu, autrement dit, le risque de ré-identifier à partir des données anonymes obtenues (i.e. les données contenues dans la structure de données générée au moyen du premier procédé de détermination) les données personnelles relatives aux individus en jeu. Ceci offre avantageusement la possibilité de contrôler le compromis entre utilité des données anonymes obtenues et niveau d'anonymat garanti.
En effet, un niveau d'anonymat trop élevé peut se traduire par une perte d'information utile concernant les données d'origine. Inversement, un jeu de données anonymes trop proche du jeu de données initial dévoile trop d'informations sur les individus concernés. Un tel contrôle est donc important car il permet de savoir si le niveau d'anonymat considéré est raisonnable ou non.
En pratique, la mesure du niveau d'anonymat s'effectue au moyen d'un paramètre, noté E dans le cadre de la présente invention, et traduisant le fait que deux structures de données générées grâce audit premier procédé ont quasiment la même loi de probabilité si les ensembles de données fournis en entrée du premier procédé sont voisins, c'est-à-dire diffèrent par la contribution d'une unique donnée. Le « quasiment » est mesuré par ledit paramètre c : plus c est petit, plus les lois de probabilités sont proches et plus il est difficile de détecter la participation d'un individu particulier dans les structures de données (meilleur est donc l'anonymat atteint), ce qui correspond au but recherché par la confidentialité différentielle. On note que le paramètre c et l'anonymat atteint par l'algorithme varient en sens inverse, i.e. plus c est petit et meilleur est l'anonymat garanti par l'algorithme.
Dans la mesure où la confidentialité différentielle a été étudiée abondamment, elle n'est pas décrite plus avant ici. Pour plus de détails, il est par exemple possible de se référer au document de C. Dwork, F. McSherry, K. Nissim et A. Smith 15 intitulé « Calibrating Noise to Sensitivity in Private Data Analysis », Theory of Cryptography, pages 265-284, 2006.
Ledit premier procédé comporte tout d'abord une étape E10 d'initialisation d'une structure de données L à un ensemble vide, ladite étape E10 d'initialisation est mise en œuvre par un module d'initialisation (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
L'objectif de l'étape E10 est donc de créer une structure apte à recevoir des données. En pratique, d'un point de vue informatique, la mise en œuvre de ladite étape E10 consiste à instancier une liste vide.
Ledit premier procédé comporte également un ensemble E_DET d'étapes mises en œuvre pour chaque donnée de l'ensemble A. Afin de décrire la mise en œuvre dudit ensemble d'étapes E_DET, on considère une donnée, notée « d », de l'ensemble A. Dès lors, pour ladite donnée d, ledit ensemble d'étapes E_DET comporte une étape E_DET_10 de détermination d'une valeur W_{d} égale à b x h(d) + (1-b) x h(V), où :
• h est une fonction de hachage définie sur l'ensemble X et à valeurs discrètes dans l'intervalle [0,1], par exemple à valeurs uniformément réparties entre 0 et 1,
• b est une variable de Bernoulli de paramètre p, avec
Figure imgf000017_0001
M étant le cardinal de l'image de la fonction de hachage h, et r étant un majorant du nombre de fois où la donnée d peut être mémorisée au cours de ladite durée,
• V est une variable aléatoire uniforme sur l'ensemble X et indépendante de b. Ladite étape E_DET_10 est mise en œuvre par un module de détermination (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
La valeur du paramètre r intervenant dans l'encadrement du paramètre p est déterminée par l'application envisagée pour ledit premier procédé.
Ainsi, dans le présent mode de mise en œuvre, en considérant, comme mentionné auparavant, qu'une donnée personnelle correspond au numéro de téléphone mobile appartenant à un individu, ce numéro ayant été mémorisé dans la base de données 12 durant une période de 4h (période de temps allant de 16h à 20h) dans une gare de trains déterminée, le paramètre r peut par exemple être fixé à 5. Il est en effet raisonnable de penser qu'un individu ne passe pas et/ou ne reçoit pas plus de cinq appels téléphoniques en l'espace de quatre heures dans ladite gare.
Bien entendu, le choix consistant à considérer r égal à 5 ne constitue qu'une variante d'implémentation de l'invention, et d'autres valeurs sont envisageables dès lors qu'elles reflètent la réalité de l'application envisagée pour la mise en œuvre dudit premier procédé. En particulier, rien n'exclut, pour ce qui concerne le présent mode de mise en œuvre, de considérer une valeur inférieure ou supérieure à 5.
D'une manière générale, l'homme du métier est en mesure de fixer une valeur pour le paramètre r eu égard à l'application envisagée.
La valeur du paramètre M intervenant dans l'encadrement du paramètre p est elle aussi déterminée par l'application envisagée pour ledit premier procédé. Ainsi, en reprenant les considérations évoquées ci-dessus pour le paramètre r, le paramètre M peut par exemple être fixé à un million. Rien n'exclut cependant de considérer une autre valeur pour le paramètre M, cette valeur étant préférentiellement au moins de l'ordre du carré du cardinal de l'ensemble X, de sorte à éviter tout risque de collisions dans l'image de la fonction de hachage h (de telles collisions pouvant en effet être la source d'erreurs d'estimation de cardinaux pour des procédés d'estimation selon l'invention qui sont décrits plus en détails ultérieurement).
Il importe de noter que le fait de choisir p en respectant l'encadrement proposé ci-avant permet avantageusement de garantir une confidentialité différentielle d'ordre E de la structure de données obtenue à l'issue dudit premier procédé, comme l'inventeur a été en mesure de le démontrer.
On note par ailleurs que l'encadrement donné ci-avant pour le paramètre p traduit le niveau de confidentialité que l'on souhaite accorder aux données formant la structure de données obtenue à l'issue dudit premier procédé. Plus précisément, plus p est proche de la valeur 1/2, plus la structure de données obtenue à l'issue du premier procédé protège les données qu'elle contient contre un risque de ré-identification.
Ledit ensemble E_DET d'étapes comporte également, pour ladite donnée d, une première étape E_DET_20 de test consistant à vérifier si la valeur W_{d} appartient ou non à la structure L jusqu'alors déterminée. Ladite première étape E_DET_20 est mise en œuvre par un premier module de test (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
Dès lors, si la valeur W_{d} n'appartient pas à la structure L (réponse négative à la première étape E_DET_20 de test), ledit ensemble E_DET d'étapes comporte une deuxième étape E_DET_30 de test consistant à vérifier si le cardinal de ladite structure L est inférieur à un nombre k donné. Ladite deuxième étape E_DET_30 est mise en œuvre par un deuxième module de test (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
Dès lors, si le cardinal de ladite structure L est inférieur à k (réponse positive à la deuxième étape E_DET_30 de test), l'ensemble E_DET d'étapes comporte une étape E_DET_40 d'insertion de la valeur W_{d} dans la structure L.
A contrario, si le cardinal de la structure L est supérieur à k, ledit ensemble E_DET d'étapes comporte une troisième étape E_DET_50 de test consistant à vérifier si la valeur W_{d} est inférieure à la plus grande valeur de la structure L jusqu'alors déterminée. Ladite troisième étape E_DET_50 est mise en œuvre par un troisième module de test (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
Dès lors, si la valeur W_{d} est inférieure à la plus grande valeur de la structure L (réponse positive à la troisième étape E_DET_50 de test), l'ensemble d'étapes E_DET comporte une étape E_DET_60 d'insertion de la valeur W_{d} dans la structure L par remplacement de ladite plus grande valeur.
Ledit ensemble E_DET d'étapes a été décrit jusqu'à présent pour une seule donnée d appartenant à l'ensemble A. Les autres données appartenant à l'ensemble A sont traitées de manière similaire, à savoir que les étapes dudit ensemble E_DET d'étapes sont itérées pour chacune desdites autres données de l'ensemble A. Les exécutions de ces itérations s'effectuent de sorte que la structure de données considérée pour l'insertion d'une donnée lors d'une itération courante de l'ensemble d'étapes E_DET correspond à la structure de données dans laquelle a été insérée une donnée lors d'une itération de l'ensemble d'étapes E_DET précédant ladite itération courante.
Etant donné la nature desdites deuxième et troisième étapes de test E_DET_30, E_DET_50, on comprend que le nombre k correspond à une taille qu'il convient de ne pas dépasser pour ladite structure L. Il s'agit donc d'un nombre fixé, et avantageusement inférieur au cardinal de l'ensemble de données A de sorte que la structure de données L obtenue à l'issu du premier procédé est plus compacte que ledit ensemble de données A.
On note également, étant donné la nature de la première étape E_DET_20 de test que la structure de données L obtenue à l'issue du premier procédé ne comporte que des valeurs distinctes entre elles.
En définitive, à l'issue dudit premier procédé, on obtient une structure de données L plus compacte que l'ensemble A dont elle est issue, formée uniquement de valeurs distinctes entre elles, et qui assure une confidentialité différentielle d'ordre E à ces valeurs.
On note qu'une telle structure de données L diffère d'une structure conventionnelle de type KMV dans la mesure où la présence d'une donnée dans ladite structure L est garantie avec une probabilité p (ce qui conduit dès lors à assurer une confidentialité différentielle d'ordre c), là où la structure KMV comporte, par construction, toutes les valeurs de hachage des valeurs distinctes de l'ensemble A. Ainsi, la structure de données L obtenue au moyen du premier procédé possède un niveau de confidentialité bien meilleure que celui proposé par une structure KMV conventionnelle.
On note que le premier procédé de détermination a été décrit jusqu'à présent en considérant qu'un ensemble de données A comporte une pluralité de données. On comprend toutefois qu'il est possible de le mettre en œuvre en ne considérant qu'une seule donnée personnelle (auquel cas, bien entendu, les étapes dudit ensemble d'étapes E_DET ne sont exécutées qu'une seule fois).
On note également que le premier procédé a été décrit ci-avant en référence aux principales étapes exécutées lors de la mise en œuvre dudit premier procédé. Il n'en reste pas moins qu'il reste possible d'envisager des modes plus particuliers de mise en œuvre dudit premier procédé dans lesquels encore d'autres étapes peuvent être exécutées. De tels autres modes de mise en œuvre sont notamment utiles pour la mise en œuvre de procédé de comptage dans des ensembles, comme cela est décrit plus en détails ultérieurement.
Ainsi, dans un mode particulier de mise en œuvre, ledit premier procédé comporte également, pour chaque exécution de l'étape E_DET_60 d'insertion par remplacement, une étape d'incrémentation d'une valeur dite « valeur de dénombrement » N. De cette manière, ladite valeur de dénombrement N est représentative, à l'issue du procédé, du nombre total de fois où ladite étape d'insertion par remplacement a été exécutée lors de la mise en œuvre du procédé.
Ladite valeur de dénombrement N est par exemple initialisée à zéro.
Selon un autre exemple, ladite valeur de dénombrement N est initialisée à une réalisation d'une variable aléatoire de Laplace centrée. Procéder de cette manière se révèle avantageux dans la mesure où l'information obtenue à l'issue du premier procédé, à savoir donc un couple formé de la structure de données L et de ladite valeur de dénombrement N, respecte également le principe de la confidentialité différentielle, comme cela est par exemple expliqué dans le document de Dwork et al. déjà mentionné auparavant.
L'invention ne se limite pas à obtenir une structure de données L telle que celle décrite ci-avant à partir du seul premier procédé. En effet, l'invention propose également, selon un autre aspect, de générer, à partir d'une structure KMV préalablement déterminée pour ledit ensemble A, une structure de données plus compacte que l'ensemble A dont elle est issue, formée uniquement de valeurs distinctes entre elles, et qui assure une confidentialité d'ordre E à ces valeurs. Dit encore autrement, l'invention propose également de transformer une première structure L1 de type KMV en une deuxième structure L2 héritant des mêmes avantages que ceux décrits précédemment en référence à la structure L obtenue à l'issue du premier procédé.
La figure 4 représente, sous forme d'ordinogramme, les principales étapes d'un autre procédé de détermination selon l'invention, dit « deuxième procédé ». Les instructions dédiées à l'exécution des étapes du deuxième procédé sont contenues dans le programme PROG_2.
Pour la description du deuxième procédé de la figure 4, on considère à nouveau un ensemble A comportant une pluralité de données personnelles. On considère également qu'une première structure de données L1 a été obtenue par application d'un algorithme de k'-valeurs minimales aux données de l'ensemble A. On note que la mise en œuvre dudit algorithme de k'-valeurs minimales utilise de manière conventionnelle une fonction de hachage h, cette fonction de hachage étant définie dans le cadre de la présente invention sur l'ensemble X (c'est une fonction de hachage à valeurs discrètes dans l'intervalle [0,1], par exemple à valeurs uniformément réparties entre 0 et 1). On note par ailleurs que le nombre k' correspond, de manière connue en soi, au cardinal de la première structure Ll, et est fixé en fonction de l'application envisagée.
Par exemple, dans le contexte applicatif envisagé ici (appels passés et/ou reçus dans une gare par des individus et pendant une période de temps de 4h), ledit nombre k' peut être pris égal à 100.
De manière générale, on note que le nombre k' est représentatif d'un compromis entre capacité à stocker suffisamment de données pour pouvoir réaliser des estimations de comptage fiables (meilleur quand k' est grand) et la compacité de la structure Ll (meilleure compacité quand k' est petit). Tel qu'illustré par la figure 4, ledit deuxième procédé comporte une étape F10 de détermination d'une valeur DI égale au quotient de k'-l par la plus grande valeur de la première structure Ll. Ladite étape F10 de détermination est mise en œuvre par un module de détermination (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
Le deuxième procédé comporte également une étape F20 d'échantillonnage uniforme d'un nombre DI de valeurs dans l'image de la fonction de hachage h, i.e. dans h(X), de sorte à obtenir un ensemble L_D1 comprenant lesdites DI valeurs échantillonnées. Ladite étape F20 est mise en œuvre par un premier module d'échantillonnage (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
Par « échantillonnage uniforme d'une valeur dans un ensemble », on fait classiquement référence au fait de sélectionner aléatoirement une valeur dudit ensemble avec une probabilité uniforme égale à l'inverse du cardinal dudit ensemble. En conséquence, l'échantillonnage uniforme d'une pluralité de valeurs dans ledit ensemble consiste à répéter l'opération précédente (avec remise) autant de fois que le nombre de valeurs de ladite pluralité de valeurs.
Le deuxième procédé comporte également une étape F30 échantillonnage uniforme d'un nombre D2 de valeurs dans l'ensemble L_D1, D2 étant égal à la partie entière du produit de [1-p] par DI (i.e. [1-p] x Dl), avec, de manière similaire à ce qui a été décrit auparavant dans le cadre du premier procédé :
Figure imgf000021_0001
Ladite étape F30 est mise en œuvre par un deuxième module d'échantillonnage (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
On note que l'encadrement proposé pour le paramètre p dans le cadre dudit deuxième procédé diffère sensiblement de celui proposé dans le cadre du premier procédé en ce que le paramètre r est ici considéré égal à 1. Une telle variation découle du fait que le deuxième procédé utilise comme point de départ la structure Ll qui est une structure KMV conventionnelle, l'objectif étant, notamment, de transformer cette structure Ll en une autre structure fournissant une garantie de confidentialité différentielle. Or, de manière connue en soi, les données contenues dans une structure KMV conventionnelle, et donc a fortiori dans la structure Ll, sont toutes distinctes les unes des autres, de sorte que le nombre maximal de fois où une donnée peut apparaitre dans la structure Ll est égal à 1.
Ledit deuxième procédé comporte également une étape F40 de sélection d'un nombre D3 de plus petites valeurs parmi lesdites D2 valeurs échantillonnées, D3 étant égal à la partie entière du produit [1-p] x k, où k est un nombre donné inférieur à k'. Ladite étape F40 est mise en œuvre par un premier module de sélection (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
Ledit deuxième procédé comporte également une étape F50 d'échantillonnage uniforme d'un nombre D4 de valeurs entre la plus grande valeur de la première structure L1 et 1, de sorte à obtenir un ensemble L_D4 comprenant lesdites D4 valeurs échantillonnées, D4 étant égale à Dl-k. Ladite étape F50 est mise en œuvre par un troisième module d'échantillonnage (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
Ledit deuxième procédé comporte également une étape F60 d'échantillonnage uniforme d'un nombre D5 de valeurs dans l'union des ensembles L_D1 et L_D4, D5 étant égal à la partie entière du produit p x Dl. Ladite étape F60 est mise en œuvre par un quatrième module d'échantillonnage (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
Ledit deuxième procédé comporte également une étape F70 de sélection d'un nombre D6 de plus petites valeurs parmi lesdites D5 valeurs échantillonnées, D6 étant égal à k-D3. Ladite étape F70 est mise en œuvre par un deuxième module de sélection (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
Ledit deuxième procédé comporte également une étape F80 de regroupement desdites plus petites valeurs sélectionnées lors desdites sélections, de sorte à former une deuxième structure L2.
En définitive, à l'issue dudit deuxième procédé, et de manière similaire à ce qui a été décrit ci-avant pour le premier procédé, on obtient une structure de données L2 plus compacte que l'ensemble A dont elle est issue, formée uniquement de valeurs distinctes entre elles, et qui assure une confidentialité d'ordre E à ces valeurs.
En outre, cette structure de données L2 présente également l'avantage d'être plus compacte que la structure de données L1 étant donné que k est inférieur à k', tout en offrant une garantie de confidentialité beaucoup plus forte.
D'un point de vue théorique, il convient d'observer que le résultat du mécanisme consistant à générer la structure de données L2 à partir de la structure de données L1 satisfait la garantie de confidentialité d'ordre c différentielle dès lors que k' est supérieur à [1-p] x D_A + p x k, où D_A correspond au nombre d'éléments distincts de l'ensemble A. Or, le nombre k' étant donné par le cas d'application du deuxième procédé, on comprend qu'il faut choisir k de sorte que la condition k' est supérieur [1-p] x D_A + p x k soit satisfaite. Les structures de type KMV étant utilisées dans les situations où k' est inférieur à D_A (sinon il suffirait de stocker toutes les données de l'ensemble A pour en compter les éléments distincts), le choix consistant à avoir k inférieur à k' permet donc de garantir la confidentialité différentielle d'ordre c de la structure L2.
On comprend donc que l'invention permet d'obtenir une structure de données compacte et garantissant une confidentialité différentielle d'ordre c de deux manières différentes : soit en créant ladite structure de données directement à partir d'un ensemble brut de données A, soit en transformant une structure de données de type KMV elle-même obtenue à partir dudit ensemble brut de données A.
Selon un autre aspect, l'invention permet également d'enrichir une structure de données indifféremment obtenue selon le premier procédé ou le deuxième procédé, en y insérant une donnée nouvellement mémorisée dans la base de données 12.
La figure 5 représente, sous forme d'ordinogramme, les principales étapes d'un procédé d'insertion de données selon l'invention, dit « troisième procédé ». Les instructions dédiées à l'exécution des étapes du troisième procédé sont contenues dans le programme PROG_3.
Pour la description du troisième procédé de la figure 5, on considère à nouveau un ensemble A comportant une pluralité de données personnelles. On considère également une donnée d_new nouvellement mémorisée dans la base de données, par exemple suite à une nouvelle exécution du processus de mémorisation, ladite donnée d_new correspondant là encore à une donnée personnelle relative à un individu et mémorisée suite à la réalisation d'un évènement (appel téléphonique passé ou reçu dans la gare de trains dans le présent mode de mise en œuvre) par ledit individu.
Ledit troisième procédé comporte dès lors une étape G10 d'obtention d'une structure L déterminée selon ledit premier procédé ou bien selon ledit deuxième procédé.
Dans un mode particulier de mise en œuvre, ladite étape G10 d'obtention consiste en la mise en œuvre du premier procédé ou bien du deuxième procédé en considérant les données de l'ensemble A. Bien entendu, dans le cas où c'est le deuxième procédé qui est mis en œuvre, on comprend que ledit troisième procédé s'appuie sur une première structure obtenue par application d'un algorithme de k'-valeurs minimales à l'ensemble A.
Dans un autre mode particulier de mise en œuvre, ladite structure de données L a été déterminée par le dispositif 11 de détermination au moyen du premier procédé ou du deuxième procédé, et préalablement à ladite étape G10 d'obtention. Dans ce cas, le terme « obtention » fait référence à un accès à une mémoire du dispositif de détermination 11 dans laquelle a été stockée la structure L à l'issue du premier procédé ou du deuxième procédé.
Ledit troisième procédé comporte également une étape G20 de mise en œuvre, pour ladite donnée d_new, d'un ensemble d'étapes identique à l'ensemble E_DET d'étapes dudit premier procédé. Autrement dit, les étapes E_DET_10 à E_DET_60 (le cas échéant) sont exécutées pour ladite donnée d_new.
Bien entendu, ledit troisième procédé ne se limite pas à l'insertion d'une seule donnée dans la structure L. Il est en effet possible d'insérer une pluralité de données dans la structure L en réitérant, de manière similaire à ce qui a été décrit pour le premier procédé, les étapes dudit ensemble E_DET d'étapes pour chacun desdites données à insérer. En outre, lorsque la structure de données L obtenue a été déterminée selon le premier procédé, de sorte à obtenir une valeur de dénombrement N correspondant au nombre total de fois où l'étape E_DET_60 d'insertion par remplacement a été exécutée lors dudit premier procédé, le troisième procédé peut également comporter, suivant un mode particulier de mise en œuvre, une mise à jour de ladite valeur de dénombrement N. Plus précisément, dans ce mode particulier de mise en œuvre, ledit troisième procédé comporte, lors de la mise en œuvre de l'étape G20, et pour chaque exécution de l'étape identique à l'étape E_DET_60 d'insertion par remplacement dudit premier procédé, une étape d'incrémentation de ladite valeur de dénombrement N. Autrement dit, dans ce mode particulier de mise en œuvre, le décompte du nombre de fois où une insertion par remplacement est exécutée est poursuivi.
Il est à noter qu'il a été considéré jusqu'à présent que le dispositif en charge de la mise en œuvre du troisième procédé est le dispositif de détermination 11 de la figure 1. Cela étant, rien n'exclut d'envisager que ledit troisième procédé soit mis en œuvre par un autre dispositif configuré de manière similaire audit dispositif de détermination 11, après que ce dernier ait déterminé la structure L. Dans ce cas, le terme « obtention » pour ladite étape G10 d'obtention fait référence à un transfert de données (émission/réception) entre le dispositif de détermination 11 et ledit autre dispositif. Ce transfert de données est mis en œuvre par le module de communication 5 équipant le dispositif de détermination 11 ainsi que par un module de communication similaire équipant ledit autre dispositif.
L'invention ne se limite pas à l'obtention de structures de données au moyen desdits premier, deuxième et troisième procédés. En effet, l'invention permet également, à partir d'une structure ainsi obtenue, de réaliser des opérations de comptage visant à estimer le nombre d'éléments distincts dans un ensemble de données, ledit ensemble de données pouvant notamment lui-même résulter d'union(s) ou d'intersection(s) d'ensembles de données.
La figure 6 représente, sous forme d'ordinogramme, les principales étapes d'un procédé de comptage selon l'invention, dit « quatrième procédé ». Les instructions dédiées à l'exécution des étapes du quatrième procédé sont contenues dans le programme PROG_4.
Ledit quatrième procédé consiste à estimer le nombre de données distinctes présentes dans l'ensemble A. Pour ce faire, ledit quatrième procédé prend appui sur une structure de données déterminée pour ledit ensemble A au moyen de l'un quelconque desdits premier, deuxième et troisième procédés. Par la suite, le nombre de données distinctes présentes dans l'ensemble A est estimé, notamment, à partir d'une quantité extraite de caractéristiques de la structure de données déterminée.
Pour la description du quatrième procédé de la figure 6, on considère à nouveau un ensemble A comportant une pluralité de données personnelles, comme cela était le cas pour les figures 3, 4 et 5. On note alors qu'étant donné le contexte applicatif considéré ici, estimer le nombre de données distinctes contenues dans l'ensemble A revient à estimer le nombre d'individus ayant passé et/ou reçu des appels téléphoniques dans la gare pendant la période de temps concernée.
Ledit quatrième procédé comporte dans un premier temps une étape H 10 d'obtention d'une structure de données L pour ledit ensemble A, ladite structure de donnée L étant déterminée selon l'un quelconque desdits premier, deuxième et troisième procédé, et le cardinal de ladite structure obtenue étant égal à un nombre k.
Les considérations techniques décrites ci-avant pour l'étape G10 du troisième procédé en ce qui concerne la signification du terme « obtention » s'appliquent ici de la même manière pour l'étape H10.
Pour rappel, la détermination de ladite structure de données L s'effectue au moyen du paramètre p, dont la valeur est choisie de sorte à être majorée par une quantité qui dépend du nombre M, et ce de sorte à garantir la confidentialité différentielle d'ordre E de ladite structure de données L.
Ledit quatrième procédé comporte également une étape H20 de détermination d'une valeur Q égale au quotient de k-1 par la plus grande valeur de la structure de données L (i.e. Q = (k-l)/max(L)). Ladite étape H20 est mise en œuvre par un module de détermination (non représenté sur les figures) équipant le dispositif de détermination 11 et configuré à cet effet.
Ledit quatrième procédé comporté également une étape H30 de détermination d'un estimateur G du nombre de données distinctes de l'ensemble A en fonction de Q.
En définitive, on obtient donc un estimateur G à partir d'une structure de données L qui est plus compacte que l'ensemble A et qui garantit en outre une confidentialité différentielle d'ordre c.
Dans un mode particulier de mise en œuvre, l'estimateur G est égal à g-1(Q), où g 1 est une fonction inverse d'une fonction g d'inconnue P et ayant pour expression :
Figure imgf000025_0001
expression dans laquelle :
Figure imgf000025_0002
Il est à noter que l'expression du coefficient a fait intervenir le coefficient binomial
Figure imgf000025_0003
qui peut encore s'écrire, suivant une autre convention : crl_moy
Le paramètre r_moy considéré dans les expressions des coefficients a et b peut prendre différentes valeurs en fonction d'hypothèses faites sur le contexte applicatif envisagé pour ledit quatrième procédé.
Ainsi, on peut par exemple considérer une hypothèse selon laquelle les nombres d'occurrences respectifs des données dudit ensemble A sont tous égaux à une même valeur R donnée. Dans ce cas, le paramètre r_moy est égal à R. Donc en particulier, s'il est raisonnable de supposer que chaque donnée de l'ensemble A n'apparait qu'une seule fois dans ledit ensemble A, on obtient les expressions simplifiées suivantes pour les coefficients a et b :
Figure imgf000026_0001
Selon un autre exemple, on considère une hypothèse selon laquelle l'ensemble A comporte plusieurs données dont les nombres d'occurrences respectifs dans ledit ensemble A diffèrent entre eux. Dans ce cas, le paramètre r_moy est égal à la partie entière du quotient de N par Q. On rappelle ici que N correspond à la valeur de dénombrement mentionnée auparavant, ce qui implique donc que pour mettre en œuvre le quatrième procédé dans le présent exemple, il importe que la structure de données L soit déterminée au moyen d'un mode de mise en œuvre du premier ou troisième procédé permettant d'obtenir ladite valeur N de dénombrement.
Il importe de noter que le fait de considérer une valeur de r_moy égale à la partie entière du quotient de N par Q n'est pas limité à la seule hypothèse considérée dans l'exemple précédent. Ainsi, une telle valeur de r_moy peut par exemple également être utilisée lorsque les nombres d'occurrences respectifs des données dudit ensemble A sont tous égaux à une même valeur, sans pour autant que la valeur commune soit connue.
Par ailleurs, le fait de considérer une détermination de l'estimateur G au moyen de ladite fonction g- 1 ne constitue qu'une variante particulière de mise en œuvre du quatrième procédé. Cette variante se révèle particulièrement avantageuse pour fournir une estimation très précise du nombre de données distinctes présentes dans l'ensemble A. L'invention couvre néanmoins d'autres modes de mise en œuvre du quatrième procédé, comme par exemple un mode dans lequel l'estimateur G est déterminé égal à Q. La figure 7 représente, sous forme d'ordinogramme, les principales étapes d'un autre procédé de comptage selon l'invention, dit « cinquième procédé ». Les instructions dédiées à l'exécution des étapes du cinquième procédé sont contenues dans le programme PROG_5.
Ledit cinquième procédé consiste à estimer le nombre de données distinctes présentes dans l'union d'une pluralité d'ensembles de données A_l, A_2,..., A_T, T étant un nombre entier strictement supérieur à 1 (un ensemble de donnée AJ, i étant un indice entier compris entre 1 et T, correspondant par exemple à l'ensemble A considéré pour le quatrième procédé).
Ledit cinquième procédé comporte dans un premier temps une étape J 10 d'obtention, pour chaque ensemble de données AJ, d'une structure de données LJ déterminée selon l'un quelconque desdits premier, deuxième et troisième procédé, le cardinal de ladite structure LJ étant égal à un nombre kj (on note que les valeurs k_l, ..., k_T peuvent être, en tout ou partie, distinctes entre elles).
La mise en œuvre de ladite étape J 10 est similaire à celle de l'étape H 10.
Ledit cinquième procédé comporte également une étape J20 de sélection d'un nombre D7 de plus petites valeurs d'une structure dite « structure d'union » L_UNION correspondant à l'union des structures de données L_l, LJ’,..., L_T. Ledit nombre D7 est égal à la plus petite valeur parmi les cardinaux respectifs desdites structures de données L_l, LJ’,..., L_T (i.e. D7 = min(k_l,..., k_T)).
Le cinquième procédé comporte également une étape J30 de détermination d'une valeur QJJNION égale au quotient de D7-1 par la plus grande valeur parmi lesdites D7 plus petites valeurs sélectionnées.
Le cinquième procédé comporte également une étape J40 de détermination d'un estimateur GJJNION du nombre de données distinctes de ladite union d'ensembles de données A_l, AJ’,..., A_T en fonction de QJJNION.
En définitive, on obtient donc un estimateur GJJNION à partir d'une structure de données LJJNION qui est plus compacte que l'union des ensembles de données A_l, A_2,..., A_T, et qui garantit en outre une confidentialité différentielle d'ordre E.
Dans un mode particulier de mise en œuvre, l'estimateur G_UNION est égal à g-1(Q_UNION), où g 1 est une fonction inverse d'une fonction g d'inconnue P et ayant pour expression :
Figure imgf000027_0001
expression dans laquelle :
Figure imgf000027_0002
Figure imgf000028_0001
Le paramètre r_moy considéré dans les expressions des coefficients a et b peut prendre différentes valeurs en fonction d'hypothèses faites sur le contexte applicatif envisagé pour ledit cinquième procédé.
Ainsi, on peut par exemple considérer une hypothèse selon laquelle les nombres d'occurrences respectifs des données desdits ensembles A_l, A_2,..., A_T sont tous égaux à une même valeur R donnée. Dans ce cas, le paramètre r_moy est égal à R.
Selon un autre exemple, on considère une hypothèse selon laquelle ladite union d'ensembles de données A_l, A_2,..., A_T comporte plusieurs données dont les nombres d'occurrences respectifs dans ladite union diffèrent entre eux. Dans ce cas, le paramètre r_moy est égal à la partie entière du quotient d'une valeur N_SUM par QJJNION, ladite valeur N_SUM étant égale à la somme des valeurs de dénombrement respectives desdites structures de données L_l, L_2,..., L_T. On note donc que pour mettre en œuvre le cinquième procédé dans le présent exemple, il importe que chaque structure de données LJ soit déterminée au moyen d'un mode de mise en œuvre du premier ou troisième procédé permettant d'obtenir une valeur de dénombrement NJ associée à ladite structure LJ. On a également que N_SUM est égale à N_1+N_2+...N_T.
Il importe de noter que le fait de considérer une valeur de r_moy égale à la partie entière du quotient de N_SUM par Q_UNION n'est pas limité à la seule hypothèse considérée dans l'exemple précédent. Ainsi, une telle valeur de r_moy peut par exemple également être utilisée lorsque les nombres d'occurrences respectifs des données de ladite union d'ensembles A_l, A_2,..., A_T sont tous égaux à une même valeur, sans pour autant que la valeur commune soit connue. Une telle valeur de r_moy peut également être envisagée dans le cas où les nombres d'occurrences respectifs des données d'un ensemble AJ son tous égaux à une même valeur rj, mais qu'il existe au moins deux indices i et j (j étant donc également compris entre 1 et T) tels que rj diffère de r .
Par ailleurs, le fait de considérer une détermination de l'estimateur GJJNION au moyen de ladite fonction g 1 ne constitue qu'une variante particulière de mise en œuvre du cinquième procédé. Cette variante se révèle particulièrement avantageuse pour fournir une estimation très précise du nombre de données distinctes présentes dans l'union des d'ensembles de données A_l, A_2,..., A_T. L'invention couvre néanmoins d'autres modes de mise en œuvre du cinquième procédé, comme par exemple un mode dans lequel l'estimateur GJJNION est déterminé égal à Q_UNION.
La figure 8 représente, sous forme d'ordinogramme, les principales étapes d'un autre procédé de comptage selon l'invention, dit « sixième procédé ». Les instructions dédiées à l'exécution des étapes du sixième procédé sont contenues dans le programme PROG_6. Ledit sixième procédé consiste à estimer le nombre de données distinctes présentes dans l'intersection d'une pluralité d'ensembles de données A_l, A_2,..., A_T, T étant un nombre entier strictement supérieur à 1 (un ensemble de donnée AJ, i étant un indice entier compris entre 1 et T, correspondant par exemple à l'ensemble A considéré pour le quatrième procédé).
A titre purement illustratif, en reprenant le contexte applicatif selon lequel une donnée personnelle relative à un individu correspond à un numéro de téléphone dudit individu mémorisé après que celui- ci ait passé ou reçu un appel dans une gare donnée et au cours d'une période de temps donnée, ledit sixième procédé permet avantageusement d'estimer le nombre de personnes ayant voyagé entre deux gares au cours d'une période de temps donnée. Plus particulièrement, si on considère un ensemble A_1 (respectivement A_2) comportant tous les numéros (éventuellement avec répétitions) des individus ayant passé et/ou reçu des appels téléphoniques dans une première gare (respectivement dans une deuxième gare), ledit sixième procédé permet d'estimer le nombre d'éléments distincts compris dans l'intersection de A_1 et A_2.
Ledit sixième procédé comporte dans un premier temps une étape M10 d'obtention, pour chaque ensemble de données AJ, d'une structure de données LJ déterminée selon l'un quelconque desdits premier, deuxième et troisième procédé, le cardinal de ladite structure LJ étant égal à un nombre kj (on note que les valeurs k_l, ..., k_T peuvent être, en tout ou partie, distinctes entre elles).
La mise en œuvre de ladite étape M10 est similaire à celle de l'étape H 10 ou bien encore J 10.
Le sixième procédé comporte également une étape M20 de sélection d'un nombre D7 de plus petites valeurs d'une structure dite « structure d'union » L_UNION correspondant à l'union des structures de données L_l, LJ’,..., L_T. ledit nombre D7 est égal à la plus petite valeur parmi les cardinaux respectifs desdites structures de données L_l, LJ’,..., L_T (i.e. D7 = min(k_l,..., k_T)).
Le sixième procédé comporte également une étape M30 de détermination d'une valeur QJJNION égale au quotient de D7-1 par la plus grande valeur parmi lesdites D7 plus petites valeurs sélectionnées.
Le sixième procédé comporte également une étape M40 de détermination d'une valeur QJNTER égale au quotient du cardinal d'une structure dite « structure d'intersection » LJNTER correspondant à l'intersection desdites structures de données L_l, LJ’,..., L_T par D7.
Le sixième procédé comporte également une étape M50 de détermination d'un estimateur GJNTER du nombre de données distinctes de ladite intersection d'ensembles de données en fonction de QJNTER et de Q_UNION.
En définitive, on obtient donc un estimateur GJNTER à partir d'une structure de données LJNTER qui est plus compacte que l'intersection des ensembles de données AJ, AJ’,..., A_T, et qui garantit en outre une confidentialité différentielle d'ordre E.
Dans un mode particulier de mise en œuvre, l'estimateur GJNTER a pour expression : QJNTER x QJJNION
GJNTER = nf=1(l - (1 - p)r0
Les paramètres r_l, r_2, r_T correspondent à des nombres respectivement associés aux ensembles de données A_l, A_2, A_T. Chaque paramètre rj considéré dans l'expression de G_INTER peut prendre différentes valeurs en fonction d'hypothèses faites sur le contexte applicatif envisagé pour ledit sixième procédé.
Ainsi, on peut par exemple considérer une hypothèse selon laquelle, pour chaque ensemble AJ, les nombres d'occurrences respectifs des données dudit ensemble AJ sont tous égaux à une même valeur RJ donnée. Dans ce cas, le paramètre rj associé à l'ensemble AJ est égal à RJ.
Selon un autre exemple, on considère une hypothèse selon laquelle au moins un ensemble de données (parmi les ensembles de données A_l,..., A_T) comporte plusieurs données dont les nombres d'occurrences respectifs dans ledit au moins un ensemble diffèrent entre eux. Dans ce cas, le paramètre rj de chaque ensemble AJ est égal à la partie entière du quotient de NJ par une valeur QJ, ladite valeur QJ étant égale au quotient de kj-l par la plus grande valeur de la structure de données LJ obtenue pour ledit ensemble AJ. On note donc que pour mettre en œuvre le sixième procédé dans le présent exemple, il importe que chaque structure de données LJ soit déterminée au moyen d'un mode de mise en œuvre du premier ou troisième procédé permettant d'obtenir une valeur de dénombrement NJ associée à ladite structure LJ.
Il importe de noter que le fait de considérer une valeur de rj égale à la partie entière du quotient de NJ par QJ n'est pas limité à la seule hypothèse considérée dans l'exemple précédent. Ainsi, des dispositions identiques peuvent également s'appliquer lorsque les nombres d'occurrences respectifs des données d'un ensemble AJ sont tous égaux à une même valeur, sans pour autant que la valeur commune soit connue.
Par ailleurs, le fait de considérer une détermination de l'estimateur G_INTER selon ledit mode particulier ne constitue qu'une variante d'implémentation du sixième procédé. Cette variante se révèle particulièrement avantageuse pour fournir une estimation très précise du nombre de données distinctes présentes dans l'intersection des d'ensembles de données A_l, A_2,..., A_T. L'invention couvre néanmoins d'autres modes de mise en œuvre du sixième procédé, comme par exemple un mode dans lequel l'estimateur G_INTER est déterminé égal à au produit entre Q_INTER et QJJNION.
Les différents procédés selon l'invention ont été décrits jusqu'à présent en relation avec un contexte applicatif dans lequel une donnée personnelle relative à un individu correspond à un numéro de téléphone dudit individu mémorisé après que celui-ci ait passé ou reçu un appel dans une gare donnée et au cours d'une période de temps donnée. Néanmoins, l'invention ne se limite à un tel contexte applicatif, et peut être mise en œuvre, en définitive, dans tout contexte dans lequel il est utile de pouvoir estimer précisément, rapidement et de manière anonymisée, le nombre de données distinctes dans un ensemble de données, dans une union d'ensembles de données ou bien encore dans une intersection d'ensembles de données. Ainsi, et de manière plus générale, l'invention trouve une application particulièrement avantageuse dans l'analyse statistique de la fréquentation d'une ou plusieurs zones géographiques, de sorte à permettre, par exemple, de dimensionner des infrastructures en fonction de flux d'individus, d'identifier des emplacements d'intérêt en fonction de profils d'individus, etc.
En outre, l'invention ne se limite pas non plus à la mémorisation de données correspondant à des numéros de téléphones mobiles. L'invention peut par exemple s'appliquer à la mémorisation de données correspondant à des informations de connexion auprès d'un serveur informatique, comme par exemple un serveur Internet de sorte à pouvoir réaliser des analyses statistiques d'un trafic réseau.

Claims

Revendications
[Revendication 1] Procédé de détermination d'une structure de données à partir d'au moins une donnée d, ladite au moins une donnée étant une donnée personnelle relative à un individu et mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu, ledit procédé comportant une étape (E10) d'initialisation d'une structure de données L à un ensemble vide ainsi qu'un ensemble E_DET d'étapes de :
- détermination (E_DET_10) d'une valeur W_{d} égale à b x h(d) + (1-b) x h(V), où :
• h est une fonction de hachage à valeurs discrètes entre 0 et 1,
• b est une variable de Bernoulli de paramètre p
1 1
— < ü < - T-
2 1 + i
Figure imgf000032_0001
M étant le cardinal de l'image de la fonction de hachage h, et r étant un majorant du nombre de fois où la donnée d peut être mémorisée au cours de ladite durée, et E étant un nombre strictement positif,
• V est une variable aléatoire uniforme indépendante de b, et, si la valeur W_{d} n'appartient pas à la structure L (E_DET_20),
- insertion (E_DET_40) de la valeur W_{d} dans la structure L si le cardinal de ladite structure L est inférieur à un nombre k donné (E_DET_30),
- sinon, si le cardinal de la structure L est supérieur à k et si la valeur W_{d} est inférieure à la plus grande valeur de la structure L (E_DET_50), insertion (E_DET_60) de la valeur W_{d} dans la structure L par remplacement de ladite plus grande valeur.
[Revendication 2] Procédé selon la revendication 1, ledit procédé comportant, lors de l'exécution de l'étape d'insertion par remplacement, une étape d'incrémentation d'une valeur dite « valeur de dénombrement » N, ladite valeur de dénombrement N étant représentative, à l'issue du procédé, du nombre total de fois où ladite étape d'insertion par remplacement a été exécutée lors de la mise en œuvre du procédé.
[Revendication 3] Procédé de détermination d'une structure de données, dite « deuxième structure de données » L2, à partir d'une première structure de données L1 obtenue par application d'un algorithme de k'-valeurs minimales à des données, une donnée étant une donnée personnelle relative à un individu et mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu, la mise en œuvre dudit algorithme de k'- valeurs minimales utilisant une fonction de hachage h à valeurs discrètes comprises entre 0 et 1, ledit procédé comportant des étapes de :
- détermination (F10) d'une valeur DI égale au quotient de k'-l par la plus grande valeur de la première structure LI,
- échantillonnage uniforme (F20) d'un nombre DI de valeurs dans l'image de la fonction de hachage h, de sorte à obtenir un ensemble L_D1 comprenant lesdits DI valeurs échantillonnées,
- échantillonnage uniforme (F30) d'un nombre D2 de valeurs dans l'ensemble L_D1, D2 étant égal à la partie entière du produit
Figure imgf000033_0001
M étant le cardinal de l'image de la fonction de hachage h, et E étant un nombre strictement positif,
- sélection (F40) d'un nombre D3 de plus petites valeurs parmi lesdites D2 valeurs échantillonnées, D3 étant égal à la partie entière du produit [1-p] x k, où k est un nombre donné inférieur à k',
- échantillonnage uniforme (F50) d'un nombre D4 de valeurs entre la plus grande valeur de la première structure L1 et 1, de sorte à obtenir un ensemble L_D4 comprenant lesdits D4 valeurs échantillonnées, D4 étant égale à Dl-k,
- échantillonnage uniforme (F60) d'un nombre D5 de valeurs dans l'union des ensembles L_D1 et L_D4, D5 étant égal à la partie entière du produit p x Dl,
- sélection (F70) d'un nombre D6 de plus petites valeurs parmi lesdites D5 valeurs échantillonnées, D6 étant égal à k-D3,
- regroupement (F80) desdites plus petites valeurs sélectionnées lors desdites sélections, de sorte à former ladite deuxième structure L2.
[Revendication 4] Procédé d'insertion d'au moins une donnée dans une structure de données L, ladite au moins une donnée étant une donnée personnelle relative à un individu et mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu, ledit procédé comportant des étapes de :
- obtention (G10) d'une structure de données L déterminée selon un procédé conforme à l'une quelconque des revendications 1 à 3,
- mise en œuvre (G20), pour ladite au moins une donnée à insérer, d'un ensemble d'étapes identique à l'ensemble E_DET d'étapes d'un procédé conforme à l'une quelconque des revendications 1 à 3.
[Revendication 5] Procédé selon la revendication 4, dans lequel, lorsque la structure de données L obtenue a été déterminée selon un procédé de détermination conforme à la revendication 2, de sorte à obtenir une valeur de dénombrement N correspondant au nombre total de fois où l'étape d'insertion par remplacement a été exécutée, le procédé d'insertion comporte également lors de l'exécution de l'étape identique à l'étape d'insertion par remplacement dudit procédé de détermination conforme à la revendication 2, une étape d'incrémentation de ladite valeur de dénombrement N.
[Revendication 6] Procédé d'estimation du nombre de données distinctes dans un ensemble de données, une donnée étant une donnée personnelle relative à un individu et mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu, ledit procédé comportant des étapes de :
- obtention (H 10) d'une structure de données déterminée selon un procédé conforme à l'une quelconque des revendications 1 à 5, le cardinal de ladite structure obtenue étant égal à k,
- détermination (H20) d'une valeur Q égale au quotient de k-1 par la plus grande valeur de la structure de données obtenue,
- détermination (H30) d'un estimateur G du nombre de données distinctes de l'ensemble de données en fonction de Q.
[Revendication 7] Procédé selon la revendication 6, dans lequel l'estimateur G est égal à g-1(Q), où g 1 est une fonction inverse d'une fonction g d'inconnue P et ayant pour expression : g(J3) = (M — /?) x p x a + /? x [b + (/? — 1) x a — (/? — 1) x a x b] expression dans laquelle :
Figure imgf000034_0001
• si les nombres d'occurrences respectifs des données dudit ensemble de données sont tous égaux à une même valeur R donnée, r_moy est égal à R,
• sinon, et si la structure de données est déterminée selon un procédé conforme à l'une quelconque des revendications 2 et 5, r_moy est égal à la partie entière du quotient de N par Q.
[Revendication 8] Procédé d'estimation du nombre de données distinctes dans une union d'une pluralité d'ensembles de données, une donnée étant une donnée personnelle relative à un individu et mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu, ledit procédé comportant des étapes de :
- obtention (J 10), pour chaque ensemble de données, d'une structure de données déterminée selon un procédé conforme à l'une quelconque des revendications 1 à 5,
- sélection (J20) d'un nombre D7 de plus petites valeurs d'une structure correspondant à l'union des structures de données obtenues, D7 étant égal à la plus petite valeur parmi les cardinaux respectifs desdites structures de données obtenues,
- détermination (J30) d'une valeur QJJNION égale au quotient de D7-1 par la plus grande valeur parmi lesdites plus petites valeurs sélectionnées,
- détermination (J40) d'un estimateur G_UNION du nombre de données distinctes de ladite union d'ensembles de données en fonction de QJJNION.
[Revendication 9] Procédé selon la revendication 8, dans lequel l'estimateur GJJNION est égal à g_1(Q_UNION), où g 1 est une fonction inverse d'une fonction g d'inconnue P et ayant pour expression : g(J3) = (M — /?) x p x a + /? x [b + (/? — 1) x a — (/? — 1) x a x b] expression dans laquelle :
Figure imgf000035_0001
• si les nombres d'occurrences respectifs des données desdits ensembles de données sont tous égaux à une même valeur R donnée, r_moy est égal à R,
• sinon, et si chaque structure de données est déterminée selon un procédé conforme à l'une quelconque des revendications 2 et 5, de sorte à obtenir une valeur N_SUM égale à la somme des valeurs de dénombrement respectives desdits structures de données, r_moy est égal à la partie entière du quotient de N_SUM par QJJNION.
[Revendication 10] Procédé d'estimation du nombre de données distinctes dans une intersection d'une pluralité d'ensembles de données, une donnée étant une donnée personnelle relative à un individu et mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu, ledit procédé comportant des étapes de :
- obtention (M10), pour chaque ensemble de données, d'une structure de données déterminée selon un procédé conforme à l'une quelconque des revendications 1 à 5,
- sélection (M20) d'un nombre D7 de plus petites valeurs d'une structure correspondant à l'union desdites structures de données obtenues, D7 étant égal à la plus petite valeur parmi les cardinaux respectifs desdites structures de données obtenues,
- détermination (M30) d'une valeur QJJNION égale au quotient de D7-1 par la plus grande valeur parmi lesdites plus petites valeurs sélectionnées,
- détermination (M40) d'une valeur QJNTER égale au quotient du cardinal d'une structure correspondant à l'intersection desdites structures de données obtenues par D7,
- détermination (M50) d'un estimateur G NTER du nombre de données distinctes de ladite intersection d'ensembles de données en fonction de QJNTER et QJJNION.
[Revendication 11] Procédé selon la revendication 10, dans lequel les ensembles de données, dits ensembles « A_l,..., A_T », sont au nombre de T et respectivement associés à des paramètres r_l,..., r_T, le cardinal d'une structure de données associée à un ensemble AJ étant égal à kj, et l'estimateur G NTER ayant pour expression :
Figure imgf000036_0001
expression dans laquelle :
• si, pour chaque ensemble AJ, les nombres d'occurrences respectifs des données dudit ensemble AJ sont tous égaux à une même valeur RJ donnée, rj est égal à RJ,
• sinon, et si chaque structure de données est déterminée selon un procédé conforme à l'une quelconque des revendications 2 et 5, de sorte à obtenir pour chaque structure de donnée associée à un ensemble AJ une valeur de dénombrement NJ, le paramètre rj de chaque ensemble AJ est égal à la partie entière du quotient de NJ par une valeur QJ, ladite valeur QJ étant égale au quotient de kj-l par la plus grande valeur de la structure de données obtenue pour ledit ensemble AJ.
[Revendication 12] Programme d'ordinateur comportant des instructions pour la mise en œuvre d'un procédé selon l'une quelconque des revendications 1 à 11 lorsque ledit programme est exécuté par un ordinateur.
[Revendication 13] Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur selon la revendication 12.
[Revendication 14] Dispositif de traitement (11) comportant des moyens configurés pour mettre en œuvre un procédé selon l'une quelconque des revendications 1 à 11.
[Revendication 15] Système informatique (10) comportant :
- une base de données (12) dans laquelle est mémorisée au moins une donnée personnelle relative à un individu, ladite au moins une donnée ayant été mémorisée au cours d'un processus de mémorisation de durée déterminée suite à la réalisation d'un évènement par ledit individu,
- un dispositif de traitement (11) selon la revendication 14.
PCT/FR2021/052231 2020-12-08 2021-12-07 Procédés de détermination d'une structure anonyme de données, procédés de comptage de données, dispositif et système pour la mise en œuvre de tels procédés WO2022123172A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR2012827 2020-12-08
FR2012827A FR3117230A1 (fr) 2020-12-08 2020-12-08 Procédés de détermination d’une structure anonyme de données, procédés de comptage de données, dispositif et système pour la mise en œuvre de tels procédés

Publications (1)

Publication Number Publication Date
WO2022123172A1 true WO2022123172A1 (fr) 2022-06-16

Family

ID=74554035

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2021/052231 WO2022123172A1 (fr) 2020-12-08 2021-12-07 Procédés de détermination d'une structure anonyme de données, procédés de comptage de données, dispositif et système pour la mise en œuvre de tels procédés

Country Status (2)

Country Link
FR (1) FR3117230A1 (fr)
WO (1) WO2022123172A1 (fr)

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Cardinality estimation : An experimental survey", PROCEEDINGS OF THE VLDB ENDOWMENT, vol. 11, no. 4, 2017, pages 499 - 512
AVI ASAYAG ET AL: "Helix: A Scalable and Fair Consensus Algorithm Resistant to Ordering Manipulation", vol. 20180922:180054, 13 September 2018 (2018-09-13), pages 1 - 22, XP061026425, Retrieved from the Internet <URL:http://eprint.iacr.org/2018/863.pdf> [retrieved on 20180913] *
C. DWORKF. MCSHERRYK. NISSIMA. SMITH: "Calibrating Noise to Sensitivity in Private Data Analysis", THEORY OF CRYPTOGRAPHY, 2006, pages 265 - 284
KAMP MICHAEL ET AL: "Privacy-Preserving Mobility Monitoring Using Sketches of Stationary Sensor Readings", 23 September 2013, ICIAP: INTERNATIONAL CONFERENCE ON IMAGE ANALYSIS AND PROCESSING, 17TH INTERNATIONAL CONFERENCE, NAPLES, ITALY, SEPTEMBER 9-13, 2013. PROCEEDINGS; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER, BERLIN, HEIDELBERG, PAGE(S) 370 - 3, ISBN: 978-3-642-17318-9, XP047491028 *
XUE WANLI ET AL: "Sequence Data Matching and Beyond: New Privacy-Preserving Primitives Based on Bloom Filters", IEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY, IEEE , PISCATWAY , NJ, US, vol. 15, 13 March 2020 (2020-03-13), pages 2973 - 2987, XP011780913, ISSN: 1556-6013, [retrieved on 20200330], DOI: 10.1109/TIFS.2020.2980835 *

Also Published As

Publication number Publication date
FR3117230A1 (fr) 2022-06-10

Similar Documents

Publication Publication Date Title
EP3414701A1 (fr) Procédé et dispositif d&#39;anonymisation de données stockées dans une base de données
FR2977969A1 (fr) Adaptation de fenetres de ponderation d&#39;analyse ou de synthese pour un codage ou decodage par transformee
WO2006027470A2 (fr) Edition de graphiques vectoriels , notamment de cartes geographiques
WO2022123172A1 (fr) Procédés de détermination d&#39;une structure anonyme de données, procédés de comptage de données, dispositif et système pour la mise en œuvre de tels procédés
EP2319039B1 (fr) Procede de mise a jour d&#39;un codeur par interpolation de filtre
FR3062499A1 (fr) Procede de reduction de la taille d&#39;une base de donnees repartie de type chaine de blocs, dispositif et programme correspondant
EP1801716B1 (fr) Diffusion de données par groupement
WO2004002058A2 (fr) Procede de generation de cles electroniques pour procede de cryptographie a cle publique et objet portatif securise mettant en oeuvre le procede
Chen Random planar maps coupled to spin systems
WO2020065185A1 (fr) Procédé cryptographique de comparaison sécurisée de deux données secrètes x et y
EP3857810B1 (fr) Procédé cryptographique de comparaison sécurisée de deux données secrètes x et y
EP2645311B1 (fr) Procédé et système de notification, à un utilisateur d&#39;un terminal, de données contextuelles relatives à des éléments identifiés dans une application de type répertoire
EP3543904A1 (fr) Procédé de contrôle de détection de scènes et appareil correspondant
WO2019086782A1 (fr) Procédé, dispositif et programme de composition d&#39;une liste ordonnée d&#39;éléments recommandés
WO2020174186A1 (fr) Procédé de validation d&#39;un système flots de données
El Haddad Approximate Analysis of M/M/c Retrial Queue
EP2348467B1 (fr) Procédé de gestion des ressources dans un réseau de télécommunication ou un système informatique
EP2274869A2 (fr) Protection en boite-blanche d&#39;algorithmes cryptographiques comprenant le calcul d&#39;une forme quadratique
EP2012290A1 (fr) Estimation de trafic dans un réseau routier
FR3131995A1 (fr) Support de calculs sur nombres reels au niveau des commutateurs physiques
FR3010206A1 (fr) Procede de gestion d&#39;une base de donnees utilisateurs sur une plate-forme de contenus multimedias
WO2015079191A2 (fr) Procédé permettant d&#39;obtenir un système de tenue de situation active décentralisée multiagents
WO2003015270A2 (fr) Procede de determination de coeeficients de filtrage d&#39;un banc de filtres module, filtre prototype, banc de filtres module, terminal et application correspondants
Trigano Statistical signal processing for gamma spectrometry: application for a pileup correction method; Traitement statistique du signal spectrometrique: etude du desempilement de spectre en energie pour la spectrometrie gamma
FR3138710A1 (fr) Procédé de traitement d’une requête d’analyse statistique ou prédictive, procédé de communication et entités applicatives aptes à mettre en œuvre ces procédés

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21848268

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21848268

Country of ref document: EP

Kind code of ref document: A1