Method and device for anonymizing data stored in a database

11068619 · 2021-07-20

Assignee

Inventors

Cpc classification

International classification

Abstract

A method is provided to anonymize “initial” data stored in a database of a computer system and resulting from aggregating personal data relating to a plurality of individuals. The method includes: an identification act identifying in the initial data a set of data that is “sensitive” that would be affected by personal data relating to one individual being added to or removed from the database; a partitioning act partitioning the sensitive data set into a plurality of subsets as a function of a sensitivity level of the sensitive data; a determination act determining a sensitivity level for each subset; and an anonymization act anonymizing the initial data and including, for each subset, adding noise to the sensitive data of that subset with a noise level that depends on the sensitivity level determined for the subset.

Claims

1. An anonymization method comprising: anonymizing initial data stored in a database of a computer system, said initial data resulting from aggregating personal data relating to a plurality of individuals, the anonymizing being performed by the computer system and comprising: identifying in the initial data a set of sensitive data, the sensitive data being data that would be affected by personal data relating to an individual being added to or removed from the database; partitioning the sensitive data set into a plurality of subsets based on sensitivity of the sensitive data; determining a respective sensitivity level for each subset; and adding noise to the sensitive data of each subset, the added noise having a level that depends on the respective sensitivity level determined for said each subset, wherein the anonymization of the initial data renders it impossible to target or to infer information about one of the plurality of individuals using the anonymized initial data, and to know whether the anonymized initial data is associated with one of the plurality of individuals.

2. The anonymization method according to claim 1, wherein the level of the noise added to the sensitive data of a subset increases with increasing sensitivity level of the subset.

3. The anonymization method according to claim 1, wherein the partitioning of the sensitive data set is configured to minimize an error evaluated between the initial data and anonymous data obtained at the end of the anonymization.

4. The anonymization method according to claim 1, wherein adding noise to the sensitive data of a subset indexed by i comprises adding to that sensitive data noise having a Laplace distribution with a standard deviation σ.sub.i that is defined from the sensitivity level Δ.sub.i determined for the subset and from a measure c of an anonymity level of the anonymization of the initial data.

5. The anonymization method according to claim 4, wherein the standard deviation σ.sub.i is given by: σ i = 2 × L Δ i .Math. where L is the number of subsets contained in the plurality of subsets.

6. The anonymization method according to claim 1, wherein adding noise to the sensitive data of a subset indexed by i comprises adding to that sensitive data noise having a Gaussian distribution.

7. The anonymization method according to claim 1, wherein the level of the noise added to the sensitive data of said each subset is selected so as to minimize an error evaluated between the initial data and anonymous data obtained at the end of the anonymization.

8. The anonymization method according to claim 1, wherein the initial data is stored in an initial data matrix and the sensitive data to which noise is added is stored in a sensitive data matrix.

9. The anonymization method according to claim 8, further comprising decomposing the sensitive data matrix into singular values and determining an anonymous data matrix on the basis of a determined number of singular values resulting from such decomposition.

10. The anonymization method according to claim 8, wherein: during said partitioning, the sensitivity level of a sensitive data value is defined as the maximum value, taken over all of the neighboring matrices of the initial data matrix, of the absolute value of the difference between that sensitive data value and the corresponding sensitive data value in the neighboring matrix under consideration, the neighboring matrix differing from the initial data matrix by the personal data of a single individual; and/or during said determining, the sensitivity level of a sensitive data subset is defined as the maximum value, taken over all of the neighboring matrices of the initial data matrix, of the sum over all of the sensitive data of the subset of the absolute values of the difference between each sensitive data value and the corresponding sensitive data value in the neighboring matrix under consideration.

11. The anonymization method according to claim 1, wherein the initial data is stored in the database in the form of a graph.

12. The anonymization method according to claim 1, wherein the personal data of a plurality of individuals comprises data associated with activity of those individuals on at least one network.

13. A non-transitory computer readable data medium storing a computer program including instructions for executing an anonymization method when the instructions are executed by a processor, wherein the method comprises: anonymizing initial data stored in a database of a computer system, said initial data resulting from aggregating personal data relating to a plurality of individuals, the anonymizing comprising: identifying in the initial data a set of sensitive data, the sensitive data being data that would be affected by personal data relating to an individual being added to or removed from the database; partitioning the sensitive data set into a plurality of subsets based on sensitivity of the sensitive data; determining a respective sensitivity level for each subset; and adding noise to the sensitive data of each subset, the added noise having a level that depends on the respective sensitivity level of the subset, wherein the anonymization of the initial data renders it impossible to target or to infer information about one of the plurality of individuals using the anonymized initial data, and to know whether the anonymized initial data is associated with one of the plurality of individuals.

14. An apparatus comprising: an anonymizer device for anonymizing initial data stored in a database, the initial data resulting from aggregating personal data relating to a plurality of individuals, the anonymizer device comprising: a processor; and a non-transitory computer readable data medium comprising a computer program stored thereon including instructions, which when executed by the processor configure the anonymizing device to: identify in the initial data a set of sensitive data, the sensitive data being data that would be affected by personal data relating to an individual being added to or removed from the database; partition the sensitive data set into a plurality of subsets based on sensitivity of the sensitive data; determine a respective sensitivity level for each subset; and add noise to the sensitive data of each subset, the added noise having a level that depends on the respective sensitivity level determined for said each subset, wherein the anon ymization of the initial data renders it impossible to target or to infer information about one of the plurality of individuals usin. the anonymized initial data, and to know whether the anonymized initial data. is associated with one of the plurality of individuals.

15. The apparatus according to claim 14, comprising: a database storing the initial data resulting from aggregating personal data relating to the plurality of individuals.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) Other characteristics and advantages of the present invention appear from the following description made with reference to the accompanying drawings, which show an implementation having no limiting character. In the figures:

(2) FIG. 1 is a diagram showing a computer system in accordance with the invention and in a particular embodiment;

(3) FIG. 2 is a representation in the form of a graph of an individual's personal data;

(4) FIG. 3 is a diagram showing the hardware architecture of an anonymizer device of the invention, included in the FIG. 1 computer system; and

(5) FIGS. 4 and 5 are flow charts showing the main steps of an anonymization method of the invention as performed by the anonymizer device of FIG. 3 in two particular implementations of the invention.

DETAILED DESCRIPTION OF THE INVENTION

(6) FIG. 1 shows a particular embodiment of a computer system 1 in accordance with the invention and in its environment. In accordance with the invention, the computer system 1 is suitable for anonymizing, i.e. making anonymous, data D comprising personal data of a plurality of individuals I1, . . . , IN, where N is any integer greater than 1.

(7) Although no limitation is associated with the nature of the personal data under consideration or with the manner in which it was acquired, it is assumed in this example by way of illustration that the personal data processed by the computer system 1 has been extracted from mobility traces identified in a mobile telecommunications network for a plurality of individuals I1, . . . , IN. Such mobility traces are conventionally returned in call reports established by the network, and they represent the mobility of individuals while on communications set up over the mobile telecommunications network between the various antenna sites of the network, and relating to a given period of time. This mobility traces can easily be modeled for each individual In, 1≤n≤N, in the form of an individual connected graph G(In) as shown in FIG. 2, having K vertices (where K is an integer greater than 1) representing the antenna sites of the mobile network through which the communications set up over the network pass. Each edge of the graph of an individual between two vertices represents that individual making the transition between the antennas represented by these vertices during a communication. The weight associated with the edge represents the number of communications set up by that individual during a given period of observation (e.g. two weeks in this example) and during which a transition between those two antennas was detected by the network.

(8) In the example shown in FIG. 2, during the two weeks under observation, the individual In under consideration set up a certain number of communications over the mobile network that pass via at least one of the K=3 antenna sites a1, a2, and a3 of the network. More precisely, 34 communications of the individual In were set up via the antenna site a1 alone, 57 via the antenna site a2, and 26 via the antenna site a3. For 14 communications, a transition was identified from antenna site a1 to antenna site a2. Furthermore: 8 communications made a transition from antenna site a3 to antenna site a2; 9 communications made a transition from antenna site a2 to antenna site a3; 7 communications made a transition from antenna site a3 to antenna site a1; and 3 communications made a transition from antenna site a1 to antenna site a3.

(9) This example is naturally given purely by way of illustration.

(10) It should be observed that such a graph, even though it takes account of all of the antenna sites of the mobile network (so K is potentially large), generally has low connectivity, since numerous transitions between antennas are never made by the individual.

(11) The graph G(In) having K vertices may be represented in equivalent manner by an adjacency matrix of dimensions K×K, which is written herein: A(G(In)), where each coefficient Aij(G(In)) of the matrix, for i,j=1, . . . , K corresponds to the weight of the edge connecting the vertex of the graph having index i to the vertex of the graph index j. In the example of the graph of FIG. 2, this adjacency matrix is a 3×3 matrix defined as follows:

(12) A ( G ( In ) ) = [ 34 14 3 0 57 9 7 8 26 ]

(13) On the basis of the graphs or matrices for each individual I1, . . . , IN, it is possible to define a collective data graph or matrix that is obtained by aggregating the graphs (or matrices) of those various individuals. In this example, such aggregation consists in summing for each edge of the collective graph the weights of the corresponding edges of the graphs of the individuals. For the matrix representation, aggregating individual matrices amounts to summing the individual matrices. The collective graph as obtained in this way is written G and the corresponding collective data matrix is written A.

(14) In a variant, functions other than summing could be envisaged for aggregating the individual data of the individuals I1, . . . , IN. For example, it is possible to take into consideration an average of the individual contributions made by each individual or a median of the transitions made by each individual on each edge of the graph.

(15) In the description below, consideration is given to the matrix representation A of the data D obtained by aggregating the personal data relating to the individuals I1, . . . , IN. Nevertheless, this assumption is not itself limiting, and the invention applies in similar manner when some other data representation is used, e.g. in graph form.

(16) The data D of the collective matrix A is stored in a database 2 of the computer system 1. This data constitutes “initial” data in the meaning of the invention, which data is to be anonymized by the computer system 1 in accordance with the invention.

(17) For this purpose, the computer system 1 includes an anonymizer device 3 in accordance with the invention. In the presently-described embodiment, the anonymizer device 3 has the hardware architecture of a computer, as shown diagrammatically in FIG. 3.

(18) It comprises in particular a processor 4, a random access memory (RAM) 5, a ROM 6, a non-volatile memory 7, and a communications module 8. The communications module 8 enables the anonymizer device 3 to communicate with the database 2, and in particular to access the data D for anonymizing that it contains. By way of example it may comprise a network card or any other means enabling it to connect to a communications network connecting the anonymizer device 3 to the database 2, or to communicate over a digital data bus connecting the anonymizer device 3 to the database.

(19) In a variant, the database 2 may be stored directly in a memory of the anonymizer device 3, e.g. in its non-volatile memory 7.

(20) The ROM 6 of the anonymizer device 3 constitutes a data medium in accordance with the invention that is readable by the processor 4 and that stores a computer program PROG in accordance with the invention, including instructions for executing steps of an anonymization method of the invention.

(21) In equivalent manner, the computer program PROG defines functional and software modules as shown in FIG. 1 that are configured to perform the steps of the anonymization method of the invention. These functional modules rely on or control the hardware elements 4 to 8 of the above-described anonymizer device 3. In particular, in this example, they comprise: an acquisition module 3A for acquiring initial data for anonymizing; an identification module 3B configured to identify a sensitive data set within the initial data; a partitioning module 3C configured to partition the sensitive data set as a plurality of subsets as a function of their sensitivity levels; a determination module 3D configured to determine a sensitivity level for each subset; and an anonymizer module 3E for anonymizing the initial data that is configured to add noise to the sensitive data of each subset with a level of noise that depends on the level of sensitivity determined for the subset.

(22) The functions of these modules are described in greater detail below with reference to FIG. 4.

(23) FIG. 4 shows the main steps of the anonymization method of the invention as they are performed in a first particular implementation by the anonymizer device 3 on the initial data D stored in matrix form A in the database 2 in order to generate anonymous data.

(24) It is thus assumed initially that the anonymizer device 3 acts via its acquisition module 3A and its communication module 8 to obtain the initial data D stored in the form of a matrix A in the database 2 (step E10).

(25) As mentioned above, the data matrix A is the result of aggregating the personal data of the individuals I1, . . . , IN. In other words, each coefficient Aij of the matrix A is the sum of the weights of the edges connecting the vertices i and j of the individual graph of each individual I1, . . . , IN, i.e. the sum of the coefficients Aij(In), for n=1, . . . , N of the individual matrices A(In) of the individuals I1, . . . , IN, i.e.:

(26) Aij = .Math. n = 1 N Aij ( In )
for i,j=1, . . . , K where K designates the number of vertices of each individual graph. In this example, the data matrix A is a real matrix. Thus, in the presently-envisaged example of mobility traces used for illustrative purposes: N designates the number of individuals (or clients of the mobile network) under consideration; K designates the number of antenna sites of the mobile network under consideration through which the communications of the individuals I1, . . . , IN passed; each antenna has an index i, for i=1, . . . , K; Aij(In) designates the number of communications (e.g. calls) made by the individual In that have transited from antenna i to antenna j over a period of two weeks; and Aij is the total number of communications made by the plurality of individuals I1, . . . , IN that have transited from the antenna i to the antenna j over the period of two weeks.

(27) In the description below, two real matrices A and A′ of dimensions K×K are said to be “neighboring” and they are written A˜A′, whenever one of them is obtained from the other by adding or the removing personal data of a single individual (i.e. the weights of the edges in this example).

(28) In accordance with the invention, the anonymizer device 3 acts via its identification module 3B to identify a data set written S of sensitive data within the initial data stored in the matrix A extracted from the database 2. The term “sensitive data” is used herein to mean the data of the matrix A that might be affected by personal data relating to one individual being added to or removed from the database. In the presently-described implementation, the sensitive data set S is given by:
S={(i,j)|Aij≠Aij′,∀A˜A′}

(29) It should be observed that the differential privacy depends solely on changes involving data about one individual being added to or removed from the database 2. Starting from the observation that coefficients that are not sensitive, i.e. for which Aij=Aij′, are already anonymized (for example coefficients corresponding to zero weights in the collective graph, in other words for which no edge exists between the vertices i and j, it is only coefficients that are sensitive that are anonymized in accordance with the invention.

(30) In the presently-envisaged example of mobility traces, the non-sensitive coefficients may for example be the coefficients Aij for which there does not exist any individual who set up a communication that transited from the antenna i to the antenna j. The edge (i,j) of the collective graph G is then not sensitive since its weight is zero independently of whether or not one or more particular individuals are present. Thus, in this example, the set S corresponds very nearly to the set of paths between the antenna i and the antenna j followed by at least one individual.

(31) The anonymizer device 3 then acts via its partitioning module 3C to partition the set S of sensitive data into a plurality of subsets S1, S2, . . . , SL, where L is an integer greater than 1, this partitioning being performed as a function of the level of sensitivity of the sensitive data (step E30). In the presently-described implementation, consideration is given to partitioning the set S into L=2 subsets S1 and S2.

(32) More particularly, in the presently-described implementation, during this partitioning step E30, the partitioning module 3C acts for each coefficient Aij of the set S (i.e. for each sensitive data value in the set S), to evaluate its level of sensitivity, which is written Aij (referred to below for simplification purposes as “sensitivity”) by using the following formula:
Δij=max.sub.A˜A′|Aij−Aij′|

(33) Thereafter, in order to partition the sensitive data set S into two subsets S1 and S2, the partitioning module 3C compares the sensitivity Δij of each sensitive data value as indexed by the pair (i,j) of the set S relative to a predetermined threshold THR that is strictly positive. Data of sensitivity less than or equal to the threshold THR is classified in the subset S1, while the remaining sensitive data is classified in the subset S2, i.e.:
S1={(i,j)∈S|Δij≤THR}
S2={(i,j)∈S|Δij>THR}

(34) The partitioning module 3C thus obtains a partitioning P(THR)=(S1,S2) of the sensitive data set S, i.e. S is the union of the two disjoint sets S1 and S2.

(35) Each subset S1 and S2 has its own sensitivity level Δ1 or Δ2, depending on the sensitive data it contains. The anonymizer device 3 acting via its determination module 3D then determines the sensitivity level for each subset S1 and S2 (step E40). In the presently-described implementation, this sensitivity level is calculated as follows:

(36) Δ1 = max A - A .Math. ( i , j ) S 1 .Math. Aij - Aij .Math. and Δ2 = max A - A .Math. ( i , j ) S 2 .Math. Aij - Aij .Math.

(37) In other words, sensitivity is defined in this implementation by means of an L.sub.1 norm. It should be recalled that the L.sub.1 norm of a real vector, or more generally of a set of d real components, v=(v.sub.1, . . . , v.sub.d) is defined as:

(38) .Math. v .Math. 1 = .Math. i = 1 d .Math. v i .Math.

(39) Thus, in the presently-envisaged example of mobility traces, the more sensitive edges (i,j) that belong to the subset S2 may for example correspond to transitions between antennas i and j that correspond to an individual's home or work place (these antennas are used frequently). In contrast, the less sensitive edges belonging to the subset S1 may correspond to antenna sites situated in locations that individuals visit occasionally (e.g. an airport, a park, etc.).

(40) It should be observed that the partitioning P(THR) depends on the threshold THR, which is determined beforehand. In the presently-described implementation, the threshold THR is selected so that the partitioning P(THR) minimizes (or almost minimizes) the error of the anonymization method, i.e. error between the initial data and the anonymous data obtained after anonymization. The expression for this error, which depends on the cardinal numbers of the subsets S1 and S2 and also on the sensitive levels Δ1 and Δ2, is given below.

(41) In accordance with the invention, the anonymizer device 3 then anonymizes the sensitive data of the set S by adding noise at a level (i.e. an amplitude) that depends on the sensitivity of the data, and more particularly for which the level of the noise increases with increasing level of the sensitivity of the data (step E50).

(42) For this purpose, in the presently-described implementation, the anonymizer module 3E of the anonymizer device 3 adds noise to the sensitive coefficients Aij of the matrix A (i.e. belonging to the set S), which noise has a Laplace distribution with standard deviation that varies (increases) as a function of the sensitivity of the subset to which the coefficients belong. It thus generates a noisy data matrix, written Ã, in which each coefficient, written Ãij is defined by:
Ãij=Aij+Bij
where: Bij=0 if (i,j).Math.S; Bij follows a Laplace distribution having standard deviation:

(43) σ1 = 2 × 2 Δ1 .Math. if ( i , j ) S 1 Bij follows a Laplace distribution having standard deviation:

(44) σ2 = 2 × 2 Δ2 .Math. if ( i , j ) S 2 ; ε is a measure of the level of anonymity guaranteed by the algorithm.

(45) When the set S is partitioned into L subsets S1, . . . , SL, with L>2 (by previously providing L−1 thresholds), the anonymizer module 3E adds noise Bij to each coefficient Aij of the matrix A that is defined as follows: Bij=0 if (i,j).Math.S; Bij follows a Laplace distribution of standard deviation:

(46) σ l = 2 × L Δ l .Math. if ( i , j ) S l ;
where Δl designates the sensitivity level of the subset S1, 1≤l≤L, and ε designates a measure of the level of anonymity guaranteed by the anonymization performed.

(47) The data (i.e. the coefficients) of the matrix à resulting from applying random Laplace noise as defined in this way to the sensitive data of the matrix A thus constitutes anonymous data. Advantageously, this data presents better quality than the data obtained using the anonymization algorithm of Dwork et al. as described in document D2 and in which noise of uniform amplitude is applied to all of the data of the matrix.

(48) Furthermore, the inventors consider that if it is assumed that an individual may act in the matrix A on at most m coefficients of the matrix, then the following relationships exists: Δ1≤m×THR.

(49) Thus, if m and THR are small enough, the sensitivity level Δ1 is negligible relative to the sensitivity level Δ considered in the anonymization algorithm of Dwork et al. for calibrating the noise to be applied to the data. The more data there is in S1 and the smaller Δ1 (i.e. the greater the amount of data of low sensitivity in the matrix A), the better the performance that is obtained by means of the invention in comparison with the anonymization algorithm of Dwork et al.

(50) In another implementation, the noise levels applied to the sensitive data subsets S1 and S2 are selected so as to minimize error as evaluated between the initial data of the matrix A and the anonymous data of the matrix à as obtained at the end of the anonymization performed in step E50. For example, if this error, written ERR, is defined mathematically from an L.sub.1 norm as follows:
ERR=E[|Ã−A|]
where E[.] is mathematical expectation, it can easily be shown that this error ERR can also be expressed in the form:

(51) ERR = f ( n 1 , n 2 , Δ1 , Δ2 ) = 2 .Math. × ( n 1 Δ1 + n 2 Δ2 )
where n1 and n2 designate the numbers of sensitive data values in the sets S1 and S2, respectively. It should be observed that an L.sub.1 norm is particularly suitable and is easier to interpret when using Laplacian noise, since it relies on the same mathematical operations as those used for defining the sensitivity of each subset and for calibrating the noise. Nevertheless, in a variant, other error definitions could be considered, e.g. an error that is mathematically defined from an L.sub.2 norm. It should be recalled that the L.sub.2 norm of a real vector, or more generally of a set of d real components v=(v.sub.1, . . . , v.sub.d) is defined as follows:

(52) 0 .Math. v .Math. 2 = .Math. i = 1 d .Math. v i .Math. 2

(53) Minimizing the error ERR serves to determine “optimized” noise standard deviations suitable for applying to the data of the subsets S1 and S2 during the anonymization step E50, and more precisely:

(54) σ1 = 2 × Δ1 .Math. × n 1 Δ1 + n 2 Δ2 n 1 Δ1 and σ2 = 2 × Δ2 .Math. × n 1 Δ1 + n 2 Δ2 n 2 Δ2

(55) The expression for the error ERR, and the way it is minimized, also serves to determine the threshold THR as used for partitioning the set S into two subsets S1 and S2, as mentioned above. For this purpose, it is possible to proceed by trial and error by considering a plurality of threshold values THR1, THR2, . . . lying in the range 0 and a general sensitivity level Δ evaluated on all of the sensitive data of the matrix A (e.g. as in the state of the art and in the algorithm of document D2), and by considering the resulting partitions PART1, PART2, . . . for each of these values. Thereafter, for each of these partitions PARTj, j=1, 2, . . . , the corresponding error ERRj is calculated using the formula given above. The threshold THR and the partitioning PART that are used are those that lead to the minimum error ERRj.

(56) The noisy data matrix à obtained at the end of the step E50 of adding noise is a matrix of data that is anonymous in the meaning of the invention. It guarantees a level of anonymity for the data, and one measure of that anonymity is given by the parameter ε. The anonymization method of the invention constituted by steps E10 to E50 is thus a random preferred (ε-DP) differential privacy algorithm ALG. The term “random algorithm” is used to mean an algorithm ALG that outputs a random matrix in application of a probability law that depends on the initial matrix supplied as input to the algorithm.

(57) As mentioned above, this means that for all neighboring real matrix A˜A′, A and A′ being of dimensions K×K, the following applies:

(58) P ( ALG ( A ) = M ) P ( ALG ( A ) = M ) e .Math.
for any real matrix M of dimension K×K, where P(E) is the probability of a collection of events E.

(59) In other words, two results from the algorithms ALG(A) and ALG(A′) have almost the same probability law if the inputs of the algorithms A and A′ are neighboring matrices. The term “almost” is quantified by the parameter ε: the smaller this parameter, the closer the laws and the greater the difficulty of detecting any particular individual in the matrix ALG(A). Nevertheless, the smaller this parameter, the more the quality of the matrix ALG(A) is also degraded, i.e. the greater the departure of the matrix ALG(A) from the initial matrix A, and the greater the loss of useful information about the data A. The anonymization algorithm of the invention is a ε-DP algorithm like the algorithm described by Dwork et al. in document D2, but it enables better quality anonymous data to be obtained (limited loss of information).

(60) FIG. 5 shows the second implementation of the invention, in which the anonymizer module 3E of the anonymizer device 3 applies additional processing to the matrix A after step E50 in order to anonymize its data.

(61) In this second implementation, steps E10 to E50 as described above with reference to FIG. 4 and the first implementation are applied to the matrix A by the anonymizer device, thereby giving rise to the noisy sensitive data matrix Ã.

(62) Step E50 is then followed by the anonymizer module 3E decomposing the noisy sensitive data matrix à into singular values (step E60). Such singular value decomposition (SVD) is known to the person skilled in the art and is not described in greater detail herein. By way of example, it may be performed using the known algorithm referred to as the “power method”.

(63) Such singular value decomposition (SVD) leads to three matrices U, V, and DIAG being determined such that:
Ã=U.Math.DIAG.Math.V
where U and V are orthogonal matrices of dimensions K×K and DIAG is a diagonal matrix, made up of singular values λL, . . . , λK of the matrix A organized in this example in decreasing order λL≥λL≥ . . . ≥λK, i.e.:

(64) DIAG = [ λ1 0 .Math. 0 λ2 0 .Math. 0 .Math. λ k 0 .Math. 0 .Math. .Math. 0 λ K ]

(65) Thereafter, the anonymizer module 3E uses the diagonal matrix DIAG to determine a new diagonal matrix DIAG(k) that is of rank k, where k is a predetermined integer such that 1≤k≤K (step E70). This matrix DIAG(k) has the k largest singular values of the matrix DIAG along its diagonal and its other coefficients are zero, i.e.:

(66) DIAG ( k ) = [ λ1 0 .Math. 0 λ2 0 .Math. 0 .Math. λ k 0 0 0 .Math. .Math. 0 0 ]

(67) The resulting matrix DIAG(k) is an approximation to the matrix DIAG, that is “simpler” than the matrix DIAG in that it has fewer values on its diagonal, even though it contains most of the information contained in the matrix DIAG (since it has the higher value singular values, in other words its principal components). Thus, although anonymizing the data leads to information being lost, in this example this loss is moderate and is particularly well controlled.

(68) Thereafter, the matrix DIAG(k) is used for the anonymizer module 3E to construct an anonymous data matrix written Ã, using the following equation (step E80):
Ã=U.Math.DIAG(k).Math.V

(69) It should be observed that the anonymization algorithm proposed in this second implementation is likewise an ε-DP algorithm. The inventors have observed that this algorithm gives better results (i.e. anonymous data of better quality) even than the algorithm described with reference to FIG. 4 (i.e. without SVD). It should also be observed that this algorithm also gives better results than the algorithm of Dwork et al. as described in document D2, even after applying SVD type decomposition thereto.

(70) In the two implementations described herein, the initial data D of the database 2 is anonymized by adding noise having a Laplace distribution to the data that is considered to be sensitive. Nevertheless, this assumption is not itself limiting, and other noise distributions could be envisaged, such as for example a Gaussian distribution having its standard deviation adjusted as a function of the sensitivity of the data. It is also possible to envisage adding noise to data in the different subsets using noise that is distributed using different laws (e.g. adding Gaussian noise to the more sensitive data and Laplacian noise to the less sensitive data). Nevertheless, it should be observed that using distributions other than the Laplace distribution can give rise to a lower level of privacy. It is then appropriate to speak of differential privacy of (ε,δ)-DP type.

(71) Furthermore, in both implementations described herein, consideration is given to sensitivities defined using L.sub.1 norms (absolute value of a difference between two coefficients). This definition is particularly well adapted to Laplacian noise and to the definitions envisaged for sensitivity levels in those two implementations. It also makes it possible to guarantee an anonymization algorithm that is ε-DP. Specifically, the inventors have found that with Laplacian noise, the sensitivity levels defined using the L.sub.1 norm and used in the two implementations shown in FIGS. 4 and 5 have the quantities that need to be under control in order to be able to guarantee differential privacy formally.

(72) Nevertheless, in a variant, other definitions of the sensitivity level of each data value and of each subset could be envisaged, e.g. definitions based on an L.sub.2 norm. It is thus possible to envisage the following definitions for sensitivity levels of the subsets S1 and S2:

(73) Δ1 L 2 = max A - A .Math. ( i , j ) S 1 .Math. Aij - Aij .Math. 2 Δ2 L 2 = max A - A .Math. ( i , j ) S 2 .Math. Aij - Aij .Math. 2

(74) The use of sensitivity levels defined in this way on the basis of an L.sub.2 norm should be accompanied by a suitable modification to the standard deviations σ1 and σ2 for the noise that is added during step E50 in order to guarantee differential privacy.

(75) The use of an L.sub.2 norm for defining sensitivity levels is particularly well adapted when Gaussian noise is envisaged for anonymizing the data. Although the use of Gaussian noise instead of Laplacian noise leads to a lower level of privacy ((ε,δ) privacy instead of ε privacy), it should be observed that better accuracy can be achieved by combining Gaussian noise with sensitivity levels defined using an L.sub.2 norm as proposed above. Specifically, the L.sub.2 norm of a vector is known to be smaller than the L.sub.1 norm of the same vector, so the error evaluated between the anonymized matrix and the initial matrix is smaller.

(76) Thus, in the example of partitioning the sensitive data set S into two subsets S1 and S2 having respective sensitivity levels Δ1.sup.L.sup.2 and Δ2.sup.L.sup.2 that are defined using the L.sub.2 norm as mentioned above, it is possible to envisage obtaining a (ε,δ)-DP anonymization method for adding noise to the sensitive data of the sets S1 and S2 by using Gaussian noise with standard deviations σ1 and σ2 respectively as follows:

(77) σ1 = Δ1 L 2 × α × ( μ 1 + μ 2 ) .Math. μ 1 σ2 = Δ2 L 2 × α × ( μ 1 + μ 2 ) .Math. μ 2 with : α = 2 ln ( 1.25 δ ) μ 1 = n 1 × Δ1 L 2 × α μ 2 = n 2 × Δ2 L 2 × α

(78) where n.sub.1 designates the number of sensitive data values contained in the set S1 and n.sub.2 designates the number of sensitive data values contained in the set S2. These standard deviations advantageously serve to minimize the error ERR=E[|Ã−A|] defined by the L.sub.1 norm between the initial data matrix and the anonymous data matrix.

(79) The invention is illustrated herein on the basis of an example data matrix A derived from a call graph from a plurality of individuals I1, . . . , IN. As mentioned above, this example is given purely by way of illustration, and the invention applies to many kinds of personal data other than this type of data, providing it can be stored in a database of a computer system. It also applies in preferential manner to data that can be represented in the form of graphs or matrices (it being easy to derive an adjacency matrix from a graph), such as “dynamic” data. By way of example, such dynamic data may be data associated with the activity of individuals on one or more networks such as a mobile telephone network, a fixed telephone network, the public Internet, a network of connected objects, etc.

(80) Thus, as examples, the personal data of individuals under consideration may be: data representative of Internet user browsing history: the vertices of the graph G(In) of an individual In would then be the addresses of web sites or uniform resource locators (URLs) visited by that individual over a predetermined time period, and the weight of each edge (i,j) would correspond to the number of transitions made by that individual from URL i to URL j during the time period under consideration; data representative of the activity of individuals on a social network: the graph G(In) of an individual In would then be a social graph representing the connections of that individual, and the weight of each edge (i,j) would correspond to the number of transitions made by that individual from a person i of the network to a person j; and data representative of the activity of individuals on a network of connected objects: each vertex of the graph G(In) of an individual In would represent a type of connected object (e.g. a watch, a coffee pot, etc.), and the weight of each edge (i,j) would correspond to the number of moves by the individual from a connected object i to a connected object j, in other words the number of times the individual i uses the connected object j after using the connected object i.

(81) By means of the anonymization method of the invention, the personal data as acquired in this way about the individuals I1, . . . , IN can be published (in approved and anonymized form) without any risk of disclosing information about one individual in particular.