WO2014112045A1 - 秘匿化データ生成方法及び装置 - Google Patents

秘匿化データ生成方法及び装置 Download PDF

Info

Publication number
WO2014112045A1
WO2014112045A1 PCT/JP2013/050631 JP2013050631W WO2014112045A1 WO 2014112045 A1 WO2014112045 A1 WO 2014112045A1 JP 2013050631 W JP2013050631 W JP 2013050631W WO 2014112045 A1 WO2014112045 A1 WO 2014112045A1
Authority
WO
WIPO (PCT)
Prior art keywords
group
data
attribute value
record
data block
Prior art date
Application number
PCT/JP2013/050631
Other languages
English (en)
French (fr)
Inventor
裕司 山岡
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to EP13871426.6A priority Critical patent/EP2947597B1/en
Priority to JP2014557220A priority patent/JP6015777B2/ja
Priority to PCT/JP2013/050631 priority patent/WO2014112045A1/ja
Publication of WO2014112045A1 publication Critical patent/WO2014112045A1/ja
Priority to US14/749,761 priority patent/US9747467B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer

Definitions

  • This technology relates to information anonymization technology.
  • a collector of personal location data provides location data to an analyst without the information provider knowing.
  • a service provider for location data may be used as a collector, and a cloud service provider or a secondary data user (for example, a population density survey company) may be used as an analyst.
  • each record includes a row number, ID, X (latitude), and Y (longitude).
  • each record represents position data of any one of A, B, and C, and there are 7 records in total. That is, a record with the same ID may appear multiple times.
  • the ID may be a personal user ID or a measurement device ID. It may also be the ID of the organization to which it belongs.
  • FIG. 1 When the data shown in FIG. 1 is plotted on the map, for example, it is as shown in FIG. An analyst can use the data as shown in FIGS. 1 and 2 for analysis. For example, it can be seen that people are gathering around the A and B homes.
  • the analyst may not use the information provided by the information provider such as an ID. This is because an analysis like a population density survey can be performed without knowing who the location data provider is.
  • the collector may anonymize the data in FIG. 1 to make it difficult for the information provider to estimate.
  • a region is meshed based on latitude and longitude, and a statistical value for a group of records in each mesh element is calculated and disclosed or provided.
  • the number of records for each mesh element is used, for example, “3 records for mesh element M1”.
  • the ID of each record may be deleted and the position may be converted to the center point of the mesh element.
  • each record in FIG. 1 is grouped by a mesh element of “5” on one side and converted.
  • the information provider of the record classified into the mesh element M10 can be estimated as A.
  • this conventional technique has a problem that the mesh size must be sufficiently increased in order to ensure anonymity, which has a great adverse effect on the accuracy of analysis.
  • k or more records are included in a range less than the size d with respect to predetermined values d and k, and do not overlap another range.
  • Two groups are created.
  • a rectangle is included in an area where only a specific ID can exist.
  • the rectangle R43 is included in the premises of the house A, it can be estimated that the information provider of the record ⁇ 1, 2, 3 ⁇ classified into the rectangle R43 is A.
  • a method that can handle a group of records having a plurality of records having the same ID as shown in FIG. 1 may have a wider application range.
  • the same ID ie, organization ID
  • the same ID may be recorded in the data of a plurality of measuring devices.
  • this conventional technique has a problem that anonymity can be ensured only with special target data, and there are few scenes that can be applied.
  • an object of the present technology is to provide a technique for enabling anonymization of data including numerical attribute values so that appropriate analysis accuracy can be obtained.
  • the anonymized data generation method includes: (A) a data storage unit that stores a plurality of data blocks each including a confidential attribute value and a numerical attribute value; A group of data blocks that includes one data block, the frequency distribution of the confidential attribute value satisfies a predetermined condition, and the numerical attribute value falls within a predetermined area having a predetermined size, and (B) a data block belonging to the group The numerical attribute value is replaced with the numerical attribute value calculated for the group.
  • the predetermined area is determined independently of the predetermined areas for the other groups.
  • data including numerical attribute values can be anonymized so that appropriate analysis accuracy can be obtained.
  • FIG. 1 is a diagram illustrating an example of data.
  • FIG. 2 is a diagram illustrating an example of superposition of data and other data.
  • FIG. 3 is a diagram illustrating a configuration example of the information processing apparatus according to the present embodiment.
  • FIG. 4 is a diagram illustrating an example of data stored in the first data storage unit.
  • FIG. 5 is a diagram illustrating a processing flow in the embodiment of the present technology.
  • FIG. 6 is a diagram illustrating a record arrangement example.
  • FIG. 7 is a diagram showing a state in which fixed mesh elements are arranged.
  • FIG. 8 is a diagram illustrating an example of a correspondence table between IDs and records of fixed mesh elements.
  • FIG. 9 is a diagram for explaining the record group Rd.
  • FIG. 10 is a diagram for explaining the record Rl.
  • FIG. 9 is a diagram for explaining the record group Rd.
  • FIG. 11 is a diagram illustrating a processing flow in the embodiment of the present technology.
  • FIG. 12 is a diagram for explaining a minimum rectangle including the record Rl.
  • FIG. 13 is a diagram illustrating a processing flow of the group G generation processing.
  • FIG. 14 is a diagram illustrating a rectangle rect for the group G.
  • FIG. 15 is a diagram illustrating a processing flow of the exclusion process.
  • FIG. 16 is a diagram illustrating an example of a frequency distribution table generated in the exclusion process.
  • FIG. 17 is a diagram illustrating an example of a frequency distribution table generated in the exclusion process.
  • FIG. 18 is a diagram illustrating an example of a frequency distribution table generated in the exclusion process.
  • FIG. 19 is a diagram illustrating an example of a frequency distribution table generated in the exclusion process.
  • FIG. 20 is a diagram illustrating an example of a frequency distribution table generated in the exclusion process.
  • FIG. 21 is a diagram illustrating an example of a frequency distribution table generated in the exclusion process.
  • FIG. 22 is a diagram illustrating a process flow of the group classification process.
  • FIG. 23 is a diagram illustrating a processing flow of transferable record extraction processing.
  • FIG. 24 is a diagram illustrating an example of a frequency distribution table generated in the extraction process.
  • FIG. 25 is a diagram illustrating an example of a frequency distribution table generated in the extraction process.
  • FIG. 26 is a diagram illustrating an example of a frequency distribution table generated in the extraction process.
  • FIG. 27 is a diagram illustrating an example of a frequency distribution table generated in the extraction process.
  • FIG. 21 is a diagram illustrating an example of a frequency distribution table generated in the exclusion process.
  • FIG. 22 is a diagram illustrating a process flow of the group classification process.
  • FIG. 23 is a diagram illustrating a processing
  • FIG. 28 is a diagram illustrating an example of a frequency distribution table generated in the extraction process.
  • FIG. 29 is a diagram illustrating an example of a group correspondence table.
  • FIG. 30 is a diagram illustrating an example of the group information table.
  • FIG. 31 is a diagram showing an example of the group correspondence table.
  • FIG. 32 is a diagram illustrating an example of the group information table.
  • FIG. 33 is a diagram illustrating an example of the group correspondence table.
  • FIG. 34 is a diagram showing an example of the group information table.
  • FIG. 35A is a diagram illustrating a processing flow in the embodiment of the present technology.
  • FIG. 35B is a diagram illustrating a processing flow of record addition processing according to the embodiment of the present technology.
  • FIG. 36 is a diagram for explaining grouping of records that are not grouped.
  • FIG. 37 is a diagram illustrating an example of the group correspondence table.
  • FIG. 38 is a diagram illustrating an example of the group information table.
  • FIG. 39 is a diagram illustrating a processing flow in the embodiment of the present technology.
  • FIG. 40 is a diagram for explaining a randomly generated rectangle.
  • FIG. 41 is a diagram illustrating an example of records registered in the output table.
  • FIG. 42 is a diagram illustrating an example of an output table.
  • FIG. 43 is a functional block diagram of a computer.
  • FIG. 3 shows a functional block diagram of the information processing apparatus 100 according to the embodiment of the present technology.
  • the information processing apparatus 100 includes a first data storage unit 110, a setting data storage unit 120, a grouping processing unit 130, a second data storage unit 140, an anonymization processing unit 150, and a third data storage unit 160. And an output unit 170.
  • the first data storage unit 110 stores data before anonymization as shown in FIG. 4, for example.
  • each record also referred to as a data block
  • each record includes an ID, X (latitude), Y (longitude), and speed. Line numbers are given for the following explanation.
  • the setting data storage unit 120 includes a range size d, a frequency distribution condition (also referred to as a frequency distribution pattern), and a confidential attribute (for example, an ID attribute) among data stored in the first data storage unit 110. .) And designation of numerical attributes (for example, position data including latitude X and longitude Y) are stored.
  • the frequency distribution pattern includes a minimum kind number l and an attenuation rate a.
  • the minimum kind number l is an integer of 2 or more, and the attenuation rate a is a positive real number of 1 or less.
  • a frequency distribution pattern is set as a condition that the nth frequency is greater than a times the n ⁇ 1th frequency in the descending order of frequency for one type of ID.
  • the grouping processing unit 130 performs processing for grouping the record group (hereinafter, table D) stored in the first data storage unit 110, and stores the processing result in the second data storage unit 140.
  • the anonymization processing unit 150 performs processing for converting the numerical attribute values of the records belonging to each group based on the grouping result, and stores the processing result in the third data storage unit 160.
  • the output unit 170 outputs the data stored in the third data storage unit 160 to another computer, a display device, a printing device, or the like.
  • the grouping processing unit 130 classifies all records in the table D stored in the first data storage unit 110 into fixed mesh elements having a size d based on numerical attribute values (FIG. 5: step S1). .
  • the record group shown in FIG. 4 is arranged on the XY plane as shown in FIG. Note that the same type of plot represents records having the same ID.
  • f (R) (floor (X / 6), floor (Y / 6))
  • floor (Q / S) is a function for rounding down Q to a value close to a multiple of S.
  • F (R) is a function for calculating the group ID of the record R including the latitude X and the longitude Y.
  • the classification as shown in FIG. 8 is made.
  • the grouping processing unit 130 extracts a record group Rd (excluding records that are grouped and cannot be transferred) that falls within the range of size 2d around the record r from neighboring fixed mesh elements of the fixed mesh element ( Step S7).
  • the neighboring fixed mesh element is a fixed mesh element having a mesh ID obtained by adding any of ⁇ 1 / 0 / + 1 to the numerical value of each element of the mesh ID.
  • mesh ID (0, 0), (-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 0), (0, 1), (0, -1), (1 , -1), (1, 0), and (1, 1) fixed mesh elements are neighboring fixed mesh elements.
  • the fixed mesh element m is (0, 0)
  • the candidate records are ⁇ 1, 2, 3, 4, 5, 6, 7, 8, 9 ⁇ .
  • the state is as shown in FIG.
  • a record that falls within the range of a dotted-line rectangle with one side 2d centering on the record 1 is extracted.
  • the record on the side is not included in the range. Therefore, among the candidate records, ⁇ 1, 2, 3, 4, 5 ⁇ is included in the record group Rd.
  • This record group Rd becomes a set of records as a base in the following processing.
  • the grouping processing unit 130 performs a process of extracting the record Rl having the ID of 1 type (the minimum number of types in the frequency pattern) from the record group Rd in the order of the closest distance from the record r (step S9).
  • the Manhattan distance is used as the distance.
  • the records “2” and “3” are included in the range of the Manhattan distance “3” with the record r as the center. Is selected.
  • the record that appears first in the sort order is selected.
  • step S11 Yes route
  • step S13 the record Rl can be extracted
  • step S11: No route the terminal B Then, the process proceeds to step S25 in FIG.
  • the grouping processing unit 130 specifies the minimum rectangle including the record Rl and specifies the length of the side of the rectangle (Step S13).
  • a rectangle having (0, 0) as the lower left vertex and (3, 4) as the upper right vertex is specified as shown in FIG. Therefore, d is less than (6, 6).
  • the grouping processing unit 130 determines whether the rectangular side is less than d (step S15). If the side of the rectangle is greater than or equal to d, the process proceeds to step S25 via the terminal B. On the other hand, if the side of the rectangle is less than d, the grouping processing unit 130 executes group G generation processing (step S17). The group G generation process will be described with reference to FIGS.
  • the grouping processing unit 130 extracts, from the record group Rd, a record group G that falls within the rectangle of one side d with reference to the maximum coordinate value of the minimum rectangle (step S31).
  • the maximum coordinate value of the minimum rectangle is the coordinate value of the point p shown in FIG. Specifically, it is the upper right vertex of the smallest rectangle.
  • a rectangle rect of one side size d having the point p as an upper right vertex is generated.
  • rect (( ⁇ 3, 3], ( ⁇ 2, 4])
  • the other side does not include a point on the side, and in the example of Fig. 14, the record group G entering the rectangle rect is ⁇ 1, 2, 3, 4 ⁇ , where ID
  • the record whose ID is A is only ⁇ 1 ⁇
  • the record whose ID is B is ⁇ 2, 3 ⁇
  • the record whose ID is C is only ⁇ 4 ⁇ Therefore, the frequency distribution of the ID attribute is ⁇ A: 1, B: 2, C: 1 ⁇ .
  • the reason why the record group Rd is extracted in this way is to improve processing efficiency.
  • the group G of record groups that include the record r and are included in an arbitrary rectangle having the size d naturally includes only records that can fall within the rectangle of the size 2d together with the record r. Therefore, extra calculation can be prevented by extracting the candidate first.
  • the reason why the record Rl is extracted is to efficiently find a place where a rectangle satisfying the condition l can be formed. It is difficult to efficiently search for a rectangle having a size d that includes one type of record in the record group Rd. Therefore, by extracting the record Rl, such a rectangle d can be efficiently searched for around r. If the record Rl cannot be extracted, it can be seen that there cannot be a rectangle having a size d that includes one type of record in the record group Rd. If the farthest record among the records Rl is less than half of the distance from the record r, a rectangle of size d including the record having the ID of 1 type exists as a rectangle centering on the record r, for example. I understand.
  • a rectangle rect having a size d with the point p as an upper right vertex is generated because the rectangle rect easily includes one type of record with ID and one type of record with ID. This is because it is easy to include records that have failed to be grouped.
  • the rectangle rect includes the record Rl, so that the ID includes one type of record. Since the group G is generated if the rectangle rect includes one type of ID record, an effect of reducing records that are not grouped in any group can be expected.
  • the record r since the record r is selected in ascending order of coordinate values on the XY plane, the record r has not been selected in the direction of the point p as viewed from the record r. That is, there are only records that are still often grouped. On the other hand, in the other direction, there may be a record selected as the record r but not yet grouped, that is, failed to be grouped.
  • the rectangle rect includes a record having ID of 1 type, it is often the case that the record Rl is nearby. In this case, the rectangle rect protrudes from the record r in a direction other than the point p. That is, it becomes easier to include records that have failed to be grouped. Therefore, an effect of reducing records that are not grouped into any group can be expected.
  • the reason why the attenuation rate a is used is not to create a group in which the frequency distribution is too biased, that is, to improve safety.
  • the process returns to the caller process.
  • the grouping processing unit 130 executes an exclusion process (step S35). If the condition l is satisfied, it is possible to exclude records so as to satisfy the condition a. Therefore, the exclusion process is executed. The exclusion process will be described with reference to FIGS.
  • the grouping processing unit 130 identifies the number of records to be excluded determined in the exclusion process according to the predetermined priority order, and excludes it from the group G (step S37).
  • the priorities the grouped records (records that can be transferred) are first excluded in order from the rearward record in the sort order, and the rest are excluded in order from the rearward record in the sort order. Then, the process returns to the caller process.
  • the grouping processing unit 130 generates a frequency distribution table F for the group G and arranges them in ascending order of the frequencies (FIG. 15: step S41).
  • the grouping processing unit 130 initializes the variable p (step S43), and initializes the variable i to 0 (step S45). Thereafter, the grouping processing unit 130 determines whether i is smaller than the number of rows
  • , the grouping processing unit 130 substitutes F [i] for the variable p (step S51). F [i] is the frequency of the (i + 1) th row of F. If i 0, the frequency “1” in the first row of F is assigned to the variable p.
  • min (F [i], floor (p / a)) is a function that outputs the smaller one of A and B.
  • step S55 the grouping processing unit 130 substitutes F [i] -p for F [i] (step S55).
  • the frequency distribution table F becomes as shown in FIG.
  • step S57 the grouping processing unit 130 increments the variable i by 1 (step S57), and the process returns to step S47.
  • step S47 since
  • . Since l 4, i + l ⁇ 1 ⁇
  • step S47 since
  • . Since l 4, i + l ⁇ 1 ⁇
  • step S47 since
  • . Since l 4, i + l ⁇ 1 ⁇
  • step S47 since
  • . Also, since l 4, i + l ⁇ 1 ⁇
  • the process returns to the caller process. That is, the frequency distribution table F (FIG. 21) at this time indicates records to be excluded. Here, one record with ID “E” is excluded. As for the records to be excluded, the grouped records (records that can be transferred) are first excluded in order from the subsequent records in the sort order, and the remaining records are excluded in order from the subsequent records in the sort order.
  • step S17 the grouping processing unit 130 executes group classification processing (step S19).
  • the group classification process will be described with reference to FIGS.
  • the grouping processing unit 130 executes transferable record extraction processing (FIG. 22: step S61). That is, a process of extracting records other than those essential for satisfying the frequency distribution pattern in the group G is executed. More specifically, this will be described with reference to FIGS.
  • the grouping processing unit 130 generates a frequency distribution table F for the group G and arranges them in ascending order of the frequencies (FIG. 23: step S71). In order to make the processing easy to understand, it is assumed that a frequency distribution table F as shown in FIG. 24 is generated.
  • ceil (x) is a ceiling function, and is a function that outputs the smallest integer equal to or greater than x with respect to the real number x.
  • F [i] represents the frequency in the (i + 1) th row of the frequency distribution table F, and
  • the grouping processing unit 130 initializes the variable i to 0 and initializes the variable max to 0 (step S75).
  • the grouping processing unit 130 determines whether i ⁇
  • step S77 the process returns to the caller process. Therefore, as shown in FIG. 28, one record whose ID is A, two records whose ID is C, one record whose ID is D, and four records whose ID is E are specified as transferable records.
  • the grouping processing unit 130 specifically identifies a transferable record according to a predetermined priority order (step S ⁇ b> 63).
  • priorities records with fixed mesh element IDs later in the sort order, and if they are the same, the records whose numerical attribute values are later in the sort order are transferable records (records that can be transferred).
  • the record ⁇ 1, 2, 3, 4 ⁇ is included in the group G, and if the process described above is performed, one record with ID B can be transferred. Therefore, when selecting according to the priority order, the record ⁇ 3 ⁇ is selected.
  • the group correspondence table as shown in FIG. 29 and the group information table as shown in FIG. 30 can be obtained.
  • the group ID can be specified from the row number.
  • a unique group ID is set as appropriate.
  • the line number of the record r is used.
  • the group information table shown in FIG. 30 is a table in which records that cannot be transferred and records that can be transferred are separately recorded for each group. Use of a condition that can calculate how many IDs are given, such as condition a (attenuation rate), is efficient in processing.
  • the grouping processing unit 130 determines whether there is an ungrouped record for the specified fixed mesh element m (step S25). If there is an ungrouped record, the process returns to step S5 in FIG. On the other hand, if there is no ungrouped record for the identified fixed mesh element m, the grouping processing unit 130 determines whether there is an unprocessed fixed mesh element in the correspondence table (step S27). If there is an unprocessed fixed mesh element, the process returns to step S3 in FIG. On the other hand, when there is no unprocessed fixed mesh element, the process proceeds to the process of FIG.
  • Record r the records of neighboring fixed mesh elements are records ⁇ 1, 2, 3, 4, 5, 6, 7, 8, 9 ⁇ .
  • the record groups having numerical attribute values that fall within the range of 4-6 ⁇ X ⁇ 4 + 6 and 4-6 ⁇ Y ⁇ 4 + 6, the records are already grouped and cannot be transferred ⁇ 1, 2, 4 ⁇ Is excluded, the record group Rd ⁇ 3, 5, 6, 7, 8, 9 ⁇ .
  • a group correspondence table as shown in FIG. 31 and a group information table as shown in FIG. 32 are obtained.
  • the record correspondence table and the group information table of the group 1 are changed.
  • the group correspondence table changes as shown in FIG. 33 and the group information table changes as shown in FIG. Record 3 is excluded from group 1 and belongs to group 5.
  • the grouping processing unit 130 determines whether there is a record that could not be grouped (FIG. 35A: step S101). It can be determined that the records not registered in the record correspondence table could not be grouped. If there is no record that could not be grouped, the process proceeds to the process of FIG.
  • the grouping processing unit 130 identifies one unprocessed fixed mesh element m that includes the record that could not be grouped (step S103). And the grouping process part 130 performs a record addition process (step S105). The record addition process will be described with reference to FIG. 35B.
  • the grouping processing unit 130 extracts a list Gm of groups included in the neighboring fixed mesh element group of the fixed mesh element m (Step S201). Here, only when all the records included in the group are included in the neighboring fixed mesh element group, the group becomes an element of the list Gm.
  • the grouping processing unit 130 identifies one unprocessed record r that could not be grouped in the identified fixed mesh element m (step S203). Then, the grouping processing unit 130 sorts the list Gm by the distance from the record r (step S205). Here, the distance between the group and the record is, for example, the Manhattan distance between the center point of the minimum rectangle of the group and the record. Furthermore, the grouping processing unit 130 identifies an unprocessed group G in the list Gm from the shorter distance (step S207). Then, the grouping processing unit 130 determines whether the minimum rectangle including the group G and the record r is smaller than d (step S209).
  • the processing speed is increased.
  • the state is as shown in FIG. When both groups are sorted by the Manhattan distance from the center point of the minimum rectangle of each group based on the record 6, it can be seen that the group 5 is closer. The smallest rectangle containing group 5 and record 6 is larger than d. Therefore, the process proceeds to step S211.
  • step S211 the grouping processing unit 130 determines whether there is an unprocessed group in the list Gm (step S211). If there is an unprocessed group, the process returns to step S207. In the example of FIG. 36, since there is an unprocessed group 1, the process returns to step S207. If group 1 is selected as group G and the process proceeds in the same manner, it is determined in step S209 that the condition is not satisfied, and the process proceeds to step S211. Since there is no unprocessed group in the list Gm, the process proceeds to step S217.
  • the grouping processing unit 130 determines whether the frequency distribution satisfies the frequency distribution pattern when the record r is added to the group G. (Step S213). If record r is record 7, the minimum rectangle including group 5 and record 7 is smaller than d and satisfies the condition of step S213, and the frequency distribution is ⁇ A: 2, B: 1, C: 2 ⁇ . The conditions l and a are satisfied.
  • step S211 If the frequency distribution pattern is not satisfied, the process proceeds to step S211.
  • the grouping processing unit 130 additionally registers the record r in the group G (step S215). That is, a group correspondence table as shown in FIG. 37 is obtained, and a group information table as shown in FIG. 38 is obtained.
  • the group correspondence table and the group information table are stored in the second data storage unit 140.
  • the grouping processing unit 130 determines whether there is an unprocessed record that could not be grouped for the identified fixed mesh element (step S217). If there is an unprocessed record, the process returns to step S203. On the other hand, when there is no unprocessed record, the process returns to the process of FIG. 35A. Returning to the description of FIG. 35A, the grouping processing unit 130 determines whether there is an unprocessed fixed mesh element including a record that could not be grouped (step S115). If there is an unprocessed fixed mesh element including a record that could not be grouped, the process returns to step S103. On the other hand, when there is no unprocessed fixed mesh element including a record that cannot be grouped, the process proceeds to the process of FIG.
  • the anonymization processing unit 150 randomly identifies one unprocessed group in the second data storage unit 140 (step S117). ). In addition, the anonymization processing unit 150 randomly determines a rectangle of size d that includes all the records of the specified group (step S119). For example, as shown in FIG. 40, a rectangle P for group 1 including records ⁇ 1, 2, 4 ⁇ is set. Later, the rectangle Q for the group 5 including the record ⁇ 3, 5, 7, 8, 9 ⁇ is also set. In FIG. 40, points having different shapes are plotted for each ID.
  • the anonymization processing unit 150 calculates the center coordinates of the determined rectangle (step S121). Coordinates other than the center may be used. Thereafter, the anonymization processing unit 150 randomly specifies one unprocessed record belonging to the specified group (step S123). Then, the anonymization processing unit 150 reads the data of the identified record from the first data storage unit 110, deletes the ID, replaces the position coordinate XY with the rectangular center coordinate, and in the third data storage unit 160 Register in the output table (step S125). For example, as shown in FIG. 41, when the record 2 is first selected, the ID is deleted, and the position coordinate XY is also replaced with the rectangular center coordinate (2, 2) from (2, 0). The attribute value of speed is not changed. However, the attribute value of the speed attribute may also be converted.
  • the anonymization processing unit 150 determines whether there is an unprocessed record in the specified group (step S127). If there is an unprocessed record, the process returns to step S123. On the other hand, when there is no unprocessed record, the anonymization processing unit 150 determines whether an unprocessed group exists (step S129). If an unprocessed group exists, the process returns to step S117. On the other hand, if there is no unprocessed group, the output unit 170 outputs the output table in the third data storage unit 160 to an output device such as a display device or a printing device (step S131).
  • data as shown in FIG. 42 is output.
  • line numbers are included, but such data may be deleted.
  • each group has one or more types of confidential attribute values, so that the range of each group can only have a specific ID. Are not included, and anonymity is ensured.
  • each range where the disclosed record exists is less than the size d, it is possible to perform high-precision analysis by specifying a small d. However, as d is smaller, more records are not classified into any range, and such records are not disclosed. Therefore, it is not preferable to make d too small.
  • d when d is designated, it is possible to disclose data with accuracy suitable for d while ensuring anonymity. For example, by determining d based on the measurement error and the analysis ability on the analysis side, it is possible to best achieve both anonymity and analysis accuracy.
  • the processing flow is an example, and the processing order may be changed or a plurality of steps may be executed in parallel as long as the processing result does not change.
  • the method of setting the rectangle rect described above is an example. Since it can be set regardless of the rectangle of the other group, it can be set mainly considering the records included in the group.
  • the numerical attribute is two-dimensional, but it may be one-dimensional or three-dimensional or more. In that case, it changes according to the number of dimensions such as a line segment or a rectangular parallelepiped instead of a rectangle.
  • the information processing apparatus 100 may share functions with a plurality of computers instead of a single computer. Furthermore, it may be a server client type implementation.
  • the information processing apparatus 100 described above is, for example, a computer apparatus, and as shown in FIG. 43, a display control unit 2507 connected to a memory 2501, a CPU 2503, a hard disk drive (HDD) 2505, and a display apparatus 2509.
  • a drive device 2513 for the removable disk 2511, an input device 2515, and a communication control unit 2517 for connecting to a network are connected by a bus 2519.
  • An operating system (OS: Operating System) and an application program for performing the processing in this embodiment are stored in the HDD 2505, and are read from the HDD 2505 to the memory 2501 when executed by the CPU 2503.
  • OS Operating System
  • the CPU 2503 controls the display control unit 2507, the communication control unit 2517, and the drive device 2513 according to the processing content of the application program, and performs a predetermined operation. Further, data in the middle of processing is mainly stored in the memory 2501, but may be stored in the HDD 2505. In an embodiment of the present technology, an application program for performing the above-described processing is stored in a computer-readable removable disk 2511 and distributed, and installed from the drive device 2513 to the HDD 2505. In some cases, the HDD 2505 may be installed via a network such as the Internet and the communication control unit 2517. Such a computer apparatus realizes various functions as described above by organically cooperating hardware such as the CPU 2503 and the memory 2501 described above and programs such as the OS and application programs. .
  • the predetermined area is determined independently of the predetermined areas for the other groups.
  • the predetermined area described above is determined independently of the predetermined area for other groups, there may be some overlap, but for this purpose, a group whose frequency distribution of confidential attribute values satisfies the predetermined condition It becomes easy to generate and the grouping omission can be reduced. That is, the amount of data that can be used for analysis increases and the analysis accuracy improves. In addition, the size of the predetermined area can be adjusted, and this is also a factor in improving the analysis accuracy.
  • the anonymized data generation method may further include (C) a process of deleting the confidential attribute value of the data block belonging to the group. This is for confidentiality.
  • the extraction process described above includes (a1) a confidential attribute value for a set of data blocks including a first data block that has not been grouped and whose numeric attribute value is within a predetermined area having a predetermined size. (A2) If the frequency distribution of confidential attribute values for the set of data blocks does not satisfy the predetermined condition, the frequency distribution of the data block is determined so as to satisfy the predetermined condition.
  • a process of generating a group of data blocks by excluding the second data block from the set may be included. Since the second data block excluded in this way is used for extraction of other groups, the predetermined region described above may overlap.
  • the extraction process described above includes (a3) a process of extracting a third data block other than the data block that is essential when the frequency distribution of the confidential attribute value satisfies a predetermined condition from the group of data blocks. May be included.
  • the third data block may be extracted in the process of extracting another group of data blocks. Since the third data block can be used for extracting another group, the group can be easily extracted.
  • the predetermined condition described above may include a lower limit value for the number of types of confidential attribute values.
  • the extraction process described above extracts (a4) the fourth data block so as to satisfy the lower limit of the number of types of confidential attribute values based on the first data block, and (a5) is extracted. Further, a process of determining a predetermined area having a predetermined size based on the numerical attribute value of the fourth data block may be included. If the fourth data block cannot be extracted from the first data block within a predetermined range, the group cannot be extracted, and the process proceeds to processing of another data block.
  • (D) when there is a data block that does not belong to any group, the distance between the reference position of the area including the fifth data block to which the data block belongs and the data block Is equal to or less than a distance corresponding to a predetermined size, and if the frequency distribution of the confidential attribute value satisfies the predetermined condition by adding the data block, the data block is classified into a fifth data block group. Processing may be further included. It will be possible to group as much as possible without omissions.
  • the replacement process described above (b1) randomly generates an area having a predetermined size including the numerical attribute values of the data blocks belonging to the group, and (b2) corresponds to the position in the generated area.
  • a process of replacing the numerical attribute values of the data blocks belonging to the group with the numerical attribute values to be performed may be included. This makes it possible to anonymize while maintaining the group characteristics.
  • a program for causing a computer to carry out the processing described above such as a flexible disk, an optical disk such as a CD-ROM, a magneto-optical disk, a semiconductor memory (for example, ROM). Or a computer-readable storage medium such as a hard disk or a storage device. Note that data being processed is temporarily stored in a storage device such as a RAM.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 本匿名化データ生成方法は、(A)各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出し、(B)グループに属するデータブロックの数値属性値を、グループについて算出された数値属性値で置換する処理を含む。そして、上記所定の領域が、他のグループについての所定の領域とは無関係に決定されるものである。

Description

秘匿化データ生成方法及び装置
 本技術は、情報の匿名化技術に関する。
 複数の情報提供者から収集した、数値属性値を含むレコード群を、各レコードの情報提供者識別子(以下、単にIDと略す)を秘密にして、他者に開示又は提供したい場合がある。このとき、IDを削除して開示又は提供しても、特徴ある数値属性値を有するレコードについては他者が情報提供者を推定できてしまう場合がある。
 例えば、個人の位置データの収集者が、情報提供者が分からない形で、分析者に位置データを提供することを考える。ここで、収集者としては位置データについてのサービス提供者、分析者としてはクラウドサービス提供者又はデータ二次利用者(例えば人口密度調査会社など)などが考えられる。
 ここで、収集者が収集した位置データが図1に示すものであるとする。図1の例では、各レコードには、行番号と、IDと、X(緯度)と、Y(経度)とが含まれる。ここでは、各レコードは、A、B及びCの3人のいずれかの位置データを表しており、全部で7レコードある。すなわち、同じIDのレコードが複数回出現する場合がある。なお、IDは、個人のユーザIDである場合もあれば、測定機器のIDである場合もある。また、所属する組織のIDである場合もある。
 図1に示されるデータを地図上にプロットすると、例えば図2に示すようになる。分析者は、図1及び図2のようなデータが得られれば、分析に役立てることができる。例えば、A宅及びB宅付近に人が集まっていることが分かる。
 しかしながら、例えば、収集者が情報提供者との間で、匿名化しない限り他者にデータを提供しないという契約を結んでいる状況が考えられる。情報提供者は、特定の時期にどこにいたかを収集者以外に知られたくないなどの理由で、匿名化を希望する場合がある。
 一方、分析者はID等の情報提供者の情報を利用しない場合もある。位置データの提供者が誰かを知らなくても人口密度調査のような分析はできるためである。
 このような場合、収集者は図1のデータに対して匿名化を行って、情報提供者の推定を困難にすれば良い。
 収集者による単純な匿名化方式として、IDを削除する方式がある。図1からIDを削除したデータを分析者が見ても、どのレコードが誰のデータなのかそのままでは分からない。しかし、位置データから情報提供者を推定可能なレコードがあるという問題がある。
 図1からIDを削除したデータを図2のように地図上にプロットすると、例えば第1レコードの位置データ(X,Y)=(6,2)はA宅内であることが分かってしまう。すなわち、IDが削除されたデータしか見ることのできない分析者であっても、第1レコードの情報提供者がAであることが推定できてしまい、十分に匿名化されているとは言い難い。同様に、第7レコード以外は匿名化が不十分である。
 従来技術として、事前に定められた、重なりのない複数の数値範囲をグループとして把握し、各グループ内のレコード群をそれらの統計値に変換する方法がある。
 この従来技術では、緯度及び経度に基づいて地域をメッシングし、各メッシュ要素内のレコード群についての統計値を計算し、それを開示又は提供する。
 統計値としては、例えば「メッシュ要素M1には3レコード」というように、メッシュ要素毎のレコード数が用いられる。もしくは、各レコードのIDを削除し、位置をメッシュ要素の中心点に変換しても良い。
 例えば、図1の各レコードを一辺「5」のメッシュ要素によりグループ分けし、変換する場合を考える。その場合、例えば(X,Y)=([5, 10), [0, 5))などが1つのメッシュ要素、すなわちグループとなる。このメッシュ要素を仮にM10と名付けると、図1では第1レコードのみがM10に分類される。よって、「メッシュM10には1レコードあった」ことが開示される、あるいは第1レコードが(X,Y)=(7.5, 2.5)(M10の中心点)に変換され開示されることになる。
 この従来技術では、メッシュサイズが十分大きければ匿名性に問題は生じないが、メッシュサイズを小さくすると匿名性が脅かされるという問題がある。例えば、メッシュ要素M10が、もしA宅の敷地内に包含された場合(例えば、A宅の敷地が(X,Y)=([2, 10], [0, 6])の場合など)、メッシュ要素M10に分類されたレコードの情報提供者はAだと推定できてしまう。メッシュサイズを小さくするほど、特定のIDしか存在し得ないような地域にメッシュ要素が包含される可能性が高くなる。
 一方、メッシュサイズを大きくするほど、位置の一般化度合いが大きくなり、分析者による分析の精度に大きな悪影響を与えるという問題がある。例えば、統計調査では一辺約1kmのメッシュ要素が使われることがあるが、その結果だけを使う限り1km単位より詳細な地域に関する分析結果を出すことは一般的にはできない。
 このように、この従来技術は、匿名性を担保するためにメッシュサイズを十分に大きくしなければならず、分析の精度に大きな悪影響を与えるという問題がある。
 また、グループを生成する別の従来技術として、事前に決めた値d及びkに対し、大きさd未満の範囲内に、k個以上のレコードが含まれるように、且つ別の範囲と重ならないように範囲の位置を調整し、その範囲に基づきグループ化する技術がある。
 この従来技術は対象データとして互いに異なるIDを有するレコード群を前提にしており、その場合は適切な匿名性が担保されるが、図1のように同じIDのレコードが複数存在し得るデータに対しては十分な匿名性を担保できないという問題がある。
 例えば、この従来技術の一部を適用し、図1の各レコードを一辺「5」未満の矩形(d=(5, 5))で、3個以上(k=3)のレコードが含まれるようグループ分けする場合を考える。この場合、例えばレコード{1,2,3}を含む矩形R43:(X,Y)=([2, 6], [2, 4])と、レコード{4,5,6}を含む矩形R49:(X,Y)=([2, 6], [8, 10])の2つのグループができる。しかし、上でも述べた例と同じように、特定のIDしか存在し得ないような地域に矩形が包含される可能性がある。例えば矩形R43がA宅の敷地内に包含された場合には、矩形R43に分類されたレコード{1,2,3}の情報提供者がAだと推定できてしまう。
 一般的に、図1のように同じIDのレコードが複数存在するレコード群をも取り扱うことができる手法の方が適用範囲が広くて良い。例えば、組織が情報提供者の場合は特に、複数の測定機器のデータに同じID(すなわち組織ID)が記録される場合もある。また、IDが同じ複数のレコードの存在を許すことで多くのレコードを一度に分析できるようになり、分析精度の向上が望める。しかしながら、この従来技術は、特殊な対象データでしか匿名性を担保できず、適用できる場面が少ないという問題がある。
 さらに、グループ化する別の従来技術として、IDのような機密属性値の種類が各グループ内でl種類以上ある(すなわちl-多様性を満たす)ようにする技術がある。この従来技術はグループを事前に決めた大きさ未満の範囲内にすることが難しいという問題がある。事前に決めた大きさ未満の範囲内にできないと、分析の精度に大きな悪影響を与えるという問題がある。
O. Abul, F. Bonchi, and M. Nanni. Never Walk Alone: Uncertainty for Anonymity in Moving Objects Databases. In Proceedings of the 24th International Conference on Data Engineering, ICDE 2008, pp.376-385 (2008). A. Machanavajjhala, J. Gehrke, D. Kifer, M. Venkitasubramaniam. l-Diversity: Privacy Beyond k-Anonymity. ACM Transactions on Knowledge Discovery from Data, Vol. 1, Issue 1, Article No. 3, 2007.
 従って、本技術の目的は、一側面によれば、適切な分析精度を出すことができるように数値属性値を含むデータの匿名化を可能にするための技術を提供することである。
 本技術に係る匿名化データ生成方法は、(A)各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出し、(B)グループに属するデータブロックの数値属性値を、グループについて算出された数値属性値で置換する処理を含む。そして、上記所定の領域が、他のグループについての所定の領域とは無関係に決定されるものである。
 一側面によれば、適切な分析精度を出すことができるように数値属性値を含むデータを匿名化できるようになる。
図1は、データの一例を示す図である。 図2は、データと他のデータとの重ね合わせの一例を示す図である。 図3は、本実施の形態に係る情報処理装置の構成例を示す図である。 図4は、第1データ格納部に格納されるデータの一例を示す図である。 図5は、本技術の実施の形態における処理フローを示す図である。 図6は、レコードの配置例を示す図である。 図7は、固定メッシュ要素を配置した状態を示す図である。 図8は、固定メッシュ要素のIDとレコードとの対応表の一例を示す図である。 図9は、レコード群Rdについて説明するための図である。 図10は、レコードRlについて説明するための図である。 図11は、本技術の実施の形態における処理フローを示す図である。 図12は、レコードRlを包含する最小矩形を説明するための図である。 図13は、グループG生成処理の処理フローを示す図である。 図14は、グループGについての矩形rectを示す図である。 図15は、除外処理の処理フローを示す図である。 図16は、除外処理において生成される度数分布表の一例を示す図である。 図17は、除外処理において生成される度数分布表の一例を示す図である。 図18は、除外処理において生成される度数分布表の一例を示す図である。 図19は、除外処理において生成される度数分布表の一例を示す図である。 図20は、除外処理において生成される度数分布表の一例を示す図である。 図21は、除外処理において生成される度数分布表の一例を示す図である。 図22は、グループ分類処理の処理フローを示す図である。 図23は、譲渡可能レコードの抽出処理の処理フローを示す図である。 図24は、抽出処理において生成される度数分布表の一例を示す図である。 図25は、抽出処理において生成される度数分布表の一例を示す図である。 図26は、抽出処理において生成される度数分布表の一例を示す図である。 図27は、抽出処理において生成される度数分布表の一例を示す図である。 図28は、抽出処理において生成される度数分布表の一例を示す図である。 図29は、グループ対応表の一例を示す図である。 図30は、グループ情報表の一例を示す図である。 図31は、グループ対応表の一例を示す図である。 図32は、グループ情報表の一例を示す図である。 図33は、グループ対応表の一例を示す図である。 図34は、グループ情報表の一例を示す図である。 図35Aは、本技術の実施の形態における処理フローを示す図である。 図35Bは、本技術の実施の形態におけるレコード追加処理の処理フローを示す図である。 図36は、グループ化されなかったレコードのグループ化を説明するための図である。 図37は、グループ対応表の一例を示す図である。 図38は、グループ情報表の一例を示す図である。 図39は、本技術の実施の形態における処理フローを示す図である。 図40は、ランダムに生成される矩形を説明するための図である。 図41は、出力テーブルに登録されるレコードの一例を示す図である。 図42は、出力テーブルの例を示す図である。 図43は、コンピュータの機能ブロック図である。
 図3に、本技術の実施の形態に係る情報処理装置100の機能ブロック図を示す。情報処理装置100は、第1データ格納部110と、設定データ格納部120と、グループ化処理部130と、第2データ格納部140と、匿名化処理部150と、第3データ格納部160と、出力部170とを有する。
 第1データ格納部110は、例えば図4に示すような匿名化前のデータを格納している。図4の例では、各レコード(データブロックとも呼ぶ)は、IDと、X(緯度)と、Y(経度)と、速さと含む。行番号は、以下の説明のために付されている。
 また、設定データ格納部120は、範囲のサイズdと、度数分布についての条件(度数分布パターンとも呼ぶ)と、第1データ格納部110に格納されているデータのうちの機密属性(例えばID属性。機微属性とも呼ぶ。)及び数値属性(例えば緯度X及び経度Yを含む位置データ)の指定とが格納される。度数分布パターンは、最小種類数lと、減衰率aとを含む。最小種類数lは2以上の整数であり、減衰率aは1以下の正の実数である。例えば、l種類のIDについて度数の多い順にn番目の度数がn-1番目の度数のa倍以上であるという度数分布パターンが条件として設定される。
 グループ化処理部130は、第1データ格納部110に格納されているレコード群(以下では表D)をグループ化する処理を行い、処理結果を第2データ格納部140に格納する。匿名化処理部150は、グループ化の結果に基づき、各グループに属するレコードの数値属性値を変換する処理を行い、処理結果を第3データ格納部160に格納する。出力部170は、第3データ格納部160に格納されているデータを、他のコンピュータ、表示装置や印刷装置などに出力する。
 次に、図5乃至図42を用いて、情報処理装置100の処理内容について説明する。
 まず、グループ化処理部130は、第1データ格納部110に格納されている表D内の全レコードを、数値属性値に基づき大きさdの固定メッシュ要素に分類する(図5:ステップS1)。まず、設定データ格納部120において、緯度経度XYが数値属性として設定されており、さらに、d=(6,6)も設定されているものとする。そうすると、図4に示したレコード群は、XY平面上、図6に示すように配置される。なお、同じ形のプロットは、同じIDのレコードを表している。
 そして、本ステップでは、図7に示すように、d=(dX,dY)=(6,6)の固定メッシュ要素を配置して各固定メッシュ要素に包含されるレコードを抽出することで分類を行う。なお、固定メッシュ要素の範囲の上限値に相当する辺については、その固定メッシュ要素の範囲には含まれないものとする。
 これは以下の処理を高速化するための前処理であり、本実施の形態では、以下のようなグループID生成関数を使用する。
f(R)=(floor(X/6),floor(Y/6))
 ここでfloor(Q/S)は、QをSの倍数に近い値に切り捨てる関数である。また、f(R)は、緯度X及び経度Yを含むレコードRのグループIDを算出する関数である。
 図4の例であれば、図8に示すような分類がなされるようになる。図8の例では、メッシュID=(0,0)の固定メッシュ要素には、レコード{1,2,3,4,5}が属し、メッシュID=(0,1)の固定メッシュ要素には、レコード{6}が属し、メッシュID=(1,0)の固定メッシュ要素には、レコード{8,9}が属し、メッシュID=(1,1)の固定メッシュ要素には、レコード{7}が属する。
 図8のような対応表において、レコードはメッシュIDの昇順でソートしておく。また、各メッシュの行番号集合については、所属するレコードの数値属性値の昇順でソートしておく。
 その後、グループ化処理部130は、生成された対応表において、未処理の固定メッシュ要素mを1つ特定する(ステップS3)。さらに、グループ化処理部130は、固定メッシュ要素m内においてグループ化未了のレコードrを1つ特定する(ステップS5)。例えばメッシュID=(0,0)を処理対象の固定メッシュ要素mとして特定した場合、グループ化未了のレコード群は{1,2,3,4,5}であり、ここではレコードr=1を処理対象のレコードとして特定する。
 そして、グループ化処理部130は、固定メッシュ要素の近隣固定メッシュ要素から、レコードrを中心としてサイズ2dの範囲に入るレコード群Rd(但し、グループ化済みで譲れないレコードを除く)を抽出する(ステップS7)。
 近隣固定メッシュ要素は、メッシュIDの各要素の数値に-1/0/+1のいずれかを加えてできるメッシュIDを有する固定メッシュ要素であり、メッシュID=(0,0)の場合には、(-1,-1)、(-1,0)、(-1,1)、(0,-1)、(0,0)、(0,1)、(0,-1)、(1,-1)、(1,0)、(1,1)の固定メッシュ要素が近隣固定メッシュ要素となる。固定メッシュ要素mが(0,0)の場合、候補となるレコードは、{1,2,3,4,5,6,7,8,9}となる。
 さらに、レコードrを中心としたサイズ2dの範囲は、rの座標(X,Y)=(0,1)であるから、(0-6)=-6<X<(0+6)=6、(1-6)=-5<Y<(1+6)=7の範囲となる。具体的には、図9に示すような状態となる。図9において、レコード1を中心とする1辺2dの点線矩形の範囲に入っているレコードを抽出することになる。但し、辺上のレコードは範囲に含まれない。従って、候補となるレコードのうち、{1,2,3,4,5}がレコード群Rdに含まれることになる。このレコード群Rdは、以下の処理でベースとなるレコードの集合となる。
 そして、グループ化処理部130は、レコード群Rdのうち、レコードrからの距離が近い順にIDがl種類(度数パターンにおける最小種類数)のレコードRlを抽出する処理を行う(ステップS9)。例えば距離にはマンハッタン距離を用いる。本ステップでは、図10に示すように、レコードrを中心としてマンハッタン距離「3」の範囲内には、レコード「2」及び「3」が入っているが、それらは同じIDであるからいずれかが選択される。同じマンハッタン距離の場合には、ソート順で先に出現するレコードを選択する。さらに、また、マンハッタン距離「6」の範囲内には、レコード「4」が入っている。処理対象のレコード「1」、レコード「2」及びレコード「4」のIDはそれぞれ異なっているので、設定データ格納部120においてl=3が設定されている場合には、レコードRl={1,2,4}が抽出されることになる。
 ここで、処理は、レコードRlが抽出できれば(ステップS11:Yesルート)、端子Aを介して図11のステップS13に移行し、レコードRlが抽出できなければ(ステップS11:Noルート)、端子Bを介して図11のステップS25に移行する。
 図11の処理の説明に移行して、グループ化処理部130は、レコードRlを含む最小矩形を特定し、矩形の辺の長さを特定する(ステップS13)。上で述べた例では、図12に示すように(0,0)を左下の頂点とし、(3,4)を右上の頂点とする矩形が特定され、辺は縦「3」で横「4」であるからd=(6,6)未満となっている。
 グループ化処理部130は、矩形の辺がd未満であるか判断する(ステップS15)。矩形の辺がd以上であれば、端子Bを介して処理はステップS25に移行する。一方、矩形の辺がd未満であれば、グループ化処理部130は、グループG生成処理を実行する(ステップS17)。グループG生成処理については、図13乃至図21を用いて説明する。
 まず、グループ化処理部130は、レコード群Rdのうち、最小矩形の最大座標値を基準に1辺dの矩形に入るレコード群Gを抽出する(ステップS31)。最小矩形の最大座標値は、図12に示した点pの座標値のことである。具体的には、最小矩形の右上の頂点である。そして、図14に示すように、点pを右上の頂点とする1辺サイズdの矩形rectを生成する。この例の場合、p=(3,4)であるから、rect=((-3, 3], (-2, 4])すなわち、頂点pに接続する辺については辺上の点は含まれるが、それ以外の辺(点線)は辺上の点は含まれない。図14の例では、矩形rectに入るレコード群Gは、{1,2,3,4}となる。ここで、IDがAであるレコードは{1}のみで、IDがBであるレコードは{2,3}であり、IDがCであるレコードは{4}のみである。従って、ID属性の度数分布は、{A:1,B:2,C:1}となる。
 このように、レコード群Rdを抽出するのは、処理の効率化のためである。レコードrを含み且つサイズdを有する任意の矩形に含まれるレコード群のグループGには、レコードrと共に大きさ2dの矩形内に入り得るレコードしか当然含まれない。そのため、その候補を最初に抽出することで、余計な計算をすることを防ぐことができる。
 次に、レコードRlを抽出するのは、条件lを満たす矩形を作れそうな箇所を効率的に見つけるためである。レコード群RdのうちIDがl種類のレコードを包含する大きさdの矩形を効率的に探すのは難しい。そこで、レコードRlを抽出することで、r周辺であればそのような矩形dを効率的に探せるようにする。もし、レコードRlを抽出できなければ、レコード群RdのうちIDがl種類のレコードを包含する大きさdの矩形は存在し得ないことが分かる。また、レコードRlのうち最も遠いレコードがレコードrからdの半分の距離未満にあれば、IDがl種類のレコードを包含する大きさdの矩形は例えばレコードrを中心とする矩形として存在することが分かる。
 そして、点pを右上の頂点とする大きさdの矩形rectを生成するのは、矩形rectは、IDがl種類のレコードを包含しやすく、IDがl種類のレコードを包含する場合には、グルーピングされ損なったレコードも包含しやすいためである。
 例えば、上で述べたように、レコードRlのうち最も遠いレコードがrからサイズdの半分の距離未満にあれば、矩形rectはレコードRlを包含するため、IDがl種類のレコードを包含する。矩形rectが、IDがl種類のレコードを包含すれば、グループGが生成されるため、これにより、どのグループにもグルーピングされないレコードを減らす効果が期待できる。
 また、上で述べたように、XY平面上で座標値が小さい順にレコードrを選択していっているため、レコードrから見て点pの方向にはまだレコードrとして選択されたことがない、すなわちまだグルーピングされる機会の多いレコードばかりである。一方、それ以外の方向には、レコードrとして選択されたが未グルーピングの、すなわちグルーピングされ損なったレコードがある可能性がある。矩形rectが、IDがl種類のレコードを包含する場合は、レコードRlが近くにある場合であることが多く、その場合は矩形rectはレコードrから見て点pでない方向に張り出す。すなわち、グルーピングされ損なったレコードを包含しやすくなる。よって、どのグループにもグルーピングされないレコードを減らす効果が期待できる。
 そうすると、グループ化処理部130は、グループGについての度数分布を生成し、グループGにはl種類以上のID属性値が含まれるか判断する(ステップS33)。グループGにl種類以上のID属性値が含まれない場合には、端子Bを介して図11のステップS25に移行する。一方、グループGにl種類以上のID属性値が含まれる場合には、グループ化処理部130は、グループGについての度数分布が、度数分布パターンにおける条件a(=減衰率)を満たしているか判断する(ステップS34)。l=3及びa=0.5が設定されているものとする。度数が大きい順に並べて、n番目の度数が、n-1番目の度数のa=0.5以上であることが条件となっている。この場合、{B:2,A:1,C:1}となっているので、この条件を満たしている。
 減衰率aを用いるのは、度数分布の偏りが大きすぎるグループを作らない、すなわち安全性を高めるためである。
 グループGについての度数分布が、度数分布パターンにおける条件を満たしている場合には、処理は呼出元の処理に戻る。一方、グループGについての度数分布が、度数分布パターンにおける条件を満たしていない場合には、グループ化処理部130は、除外処理を実行する(ステップS35)。条件lを満たしていれば、条件aを満たすようにレコードを除外することが可能である。従って、除外処理を実行する。除外処理については、図15乃至図21を用いて説明する。
 そして、グループ化処理部130は、予め定められている優先順位に従って、除外処理で決定された数の除外すべきレコードを特定し、グループGから除外する(ステップS37)。優先順位は、グルーピング済みのもの(譲ることができるレコード)をまずソート順で後ろのレコードから順番に除外し、残りをソート順で後ろのレコードから順番に除外する。そして処理は呼出元の処理に戻る。
 ここで、除外処理について説明する。まず、グループ化処理部130は、グループGについて度数分布表Fを生成し、度数の昇順に整列させる(図15:ステップS41)。上で述べた例では、除外処理は行われないので、ここでは図16に示すような度数分布表Fが生成されたものとする。また、l=4且つa=0.5であるものとする。
 そして、グループ化処理部130は、変数pを初期化し(ステップS43)、変数iを0に初期化する(ステップS45)。その後、グループ化処理部130は、iが度数分布表Fの行数|F|より小さいか判断する(ステップS47)。iが度数分布表Fの行数|F|より小さい場合には、グループ化処理部130は、i+l-1が|F|より小さいか判断する(ステップS49)。i+l-1が|F|より小さい場合には、グループ化処理部130は、変数pに対してF[i]を代入する(ステップS51)。F[i]は、Fのi+1行目の度数である。i=0であれば、変数pには、Fの1行目の度数「1」が代入される。
 一方、i+l-1が|F|以上であれば、グループ化処理部130は、変数pに、min(F[i],floor(p/a))を代入する(ステップS53)。min(A,B)は、AとBのうち小さい方を出力する関数である。
 ステップS51又はS53の後に、グループ化処理部130は、F[i]に、F[i]-pを代入する(ステップS55)。i=0の時に、S49を実行すると、度数分布表Fは、図17のようになる。
 その後、グループ化処理部130は、変数iを1インクリメントし(ステップS57)、処理はステップS47に戻る。
 2回目のステップS47では、|F|=5,i=1であるから、i<|F|となる。また、l=4であるので、i+l-1<|F|となる。従って、ステップS51でp=3であり、F[1]=3-3=0となる。そうすると、度数分布表Fは、図18のようになる。その後i=2となる。
 3回目のステップS47では、|F|=5,i=2であるから、i<|F|となる。また、l=4であるので、i+l-1<|F|とはならず、ステップS53に移行して、a=0.5及びp=3であるから、min(F[i]=4,floor(p/a)=6)=4となる。従って、F[2]=4-4=0となる。そうすると、度数分布表Fは、図19のようになる。その後i=3となる。
 4回目のステップS47では、|F|=5、i=3であるから、i<|F|となる。また、l=4であるので、i+l-1<|F|とはならず、ステップS53に移行して、a=0.5及びp=4であるから、min(F[i]=9,floor(p/a)=8)=8となる。従って、F[3]=9-8=1となる。そうすると、度数分布表Fは、図20のようになる。その後i=4となる。
 5回目のステップS47では、|F|=5、i=4であるから、i<|F|となる。また、l=4であるので、i+l-1<|F|とはならず、ステップS53に移行して、a=0.5及びp=8であるから、min(F[i]=10,floor(p/a)=16)=10となる。従って、F[4]=10-10=0となる。そうすると、度数分布表Fは、図21のようになる。その後i=5となる。
 6回目のステップS47では、|F|=5、i=5であるから、i<|F|が成り立たなくなる。そうすると、処理は呼出元の処理に戻る。すなわち、この時点における度数分布表F(図21)が、除外すべきレコードを示している。ここでは、IDが「E」のレコードを1つ除外することになる。除外するレコードについては、グループ化済みのレコード(譲ることができるレコード)をまずソート順で後ろのレコードから順番に除外し、残りをソート順で後ろのレコードから順番に除外する。
 図11の処理の説明に戻って、ステップS17の後に、グループ化処理部130は、グループ分類処理を実行する(ステップS19)。グループ分類処理については、図22乃至図28を用いて説明する。
 まず、グループ化処理部130は、譲渡可能レコードの抽出処理を実行する(図22:ステップS61)。すなわち、グループGのうち、度数分布パターンを満たす上で必須のレコード以外のレコードを抽出する処理を実行する。より具体的には、図23乃至図28を用いて説明する。
 まず、グループ化処理部130は、グループGについて度数分布表Fを生成し、度数の昇順に整列させる(図23:ステップS71)。処理を分かり易くするために、図24に示すような度数分布表Fが生成されたものとする。
 そして、グループ化処理部130は、変数ciに|F|-lを設定し、変数minに、ceil(F[ci]*a)を設定する(ステップS73)。ceil(x)は天井関数であり、実数xに対してx以上の最小の整数を出力する関数である。F[i]は度数分布表Fのi+1行目の度数を表し、|F|は度数分布表Fの行数を表す。ci=5-4=1であり、min=ceil(2*0.5)=1となる。
 また、グループ化処理部130は、変数iを0に初期化し、変数maxを0に初期化する(ステップS75)。
 その後、グループ化処理部130は、i<|F|であるか判断する(ステップS77)。i<|F|であれば、グループ化処理部130は、変数cを初期化する(ステップS79)。その後、グループ化処理部130は、i<ciであるか判断する(ステップS81)。i=0であれば、ci=1であるからこの条件は満たされている。
 i<ciであれば、グループ化処理部130は、cに0を設定する(ステップS83)。そうすると、グループ化処理部130は、F[i]に、F[i]-cを設定する(ステップS85)。F[i]=1であり、c=0であるから、F[i]=1となる。その後、グループ化処理部130は、iを1インクリメントし(ステップS87)、処理はステップS77に戻る。
 i=1になると、ステップS81では、i<ciは成り立たなくなるので、グループ化処理部130は、i+1=|F|であるか判断する(ステップS89)。i=1であれば、i+1=2であるから、この条件を満たさない。ステップS89の条件を満たさない場合には、グループ化処理部130は、cに、ceil(F[i+1]*a)を代入する(ステップS91)。c=ceil(F[2]*0.5)=2となる。そして、グループ化処理部130は、max<cであるか判断する(ステップS93)。max=0であるからこの条件を満たす。そうすると、グループ化処理部130は、maxにcを代入する(ステップS97)。すなわち、max=c=2となる。その後、処理はステップS85に移行する。従って、2回目のステップS85では、F[1]=2-2=0となる。従って、図25に示すような度数分布表Fになる。
 i=2になると、ステップS81では、i<ciは成り立たなくなるので、ステップS89に移行する。但し、i+1<|F|であるから、ステップS91に処理は移行し、c=ceil(F[3]*a)=2となる。max=2であるから、max<cの条件を満たしていない。そうすると、グループ化処理部130は、cにminを代入する(ステップS95)。min=1であるから、c=1となる。そして処理はステップS85に移行して、3回目のステップS85では、F[2]=3-1=2となる。従って、図26に示すような度数分布表Fになる。
 i=3になると、ステップS81では、i<ciは成り立たないので、ステップS89に移行する。但し、i+1<|F|であるから、ステップS91に処理は移行し、c=ceil(F[4]*a)=3となる。max=2でc=3であるから、max<cの条件を満たしている。従って、max=c=3となる。そして、3回目のステップS85では、F[3]=4-3=1となる。従って、図27に示すような度数分布表Fとなる。
 i=4になると、ステップS81では、i<ciは成り立たないので、ステップS89に移行する。i+1<|F|は満たさなくなる。そうすると、ステップS95に処理は移行し、c=min=1となる。そして処理はステップS85に移行して、4回目のステップS85では、F[4]=F[4]-c=5-1=4となる。従って、図28に示すような度数分布表Fが得られる。
 その後i=5になると、ステップS77ではi<|F|の条件を満たさなくなるので、処理は呼出元の処理に戻る。従って図28に示すように、IDがAの1レコード、IDがCの2レコード、IDがDの1レコード、及びIDがEの4レコードが、譲渡可能なレコードとして特定されたことになる。
 図22の処理の説明に戻って、グループ化処理部130は、予め定められている優先順位に従って、譲渡可能なレコードを具体的に特定する(ステップS63)。優先順位については、固定メッシュ要素のIDがソート順でより後ろ、それが同じなら数値属性値がソート順でより後ろのレコードが、譲渡可能なレコード(譲って良いレコード)となる。
 最初の例では、グループGにはレコード{1,2,3,4}が含まれており、上で述べた処理を行うと、IDがBの1レコードを譲って良いことになる。従って優先順位に従って選択すると、レコード{3}が選択される。
 ここまでの処理によれば、図29に示すようなグループ対応表及び図30に示すようなグループ情報表が得られるようになる。
 図29に示すようなグループ対応表は、行番号からグループIDを特定できるようになっている。グループIDはグループに一意なものを適宜設定する。例えば、レコードrの行番号を用いる。図30に示すグループ情報表は、各グループについて、譲れないレコードと譲って良いレコードを分別して記録したものである。条件a(減衰率)のように、どのIDをいくつ譲っても条件を満たすか計算できる条件を使用することは、処理効率が良い。
 図11の処理の説明に戻って、グループ化処理部130は、レコードのグループGには他のグループG2に含まれるレコード(譲って良いレコード)が含まれるか判断する(ステップS21)。グループGに他のグループG2に含まれるレコードが含まれる場合には、グループ化処理部130は、他のグループG2についてのグループ対応表及びグループ情報表から、そのレコードについてデータを削除するように変更を行う(ステップS23)。一方、グループGに他のグループG2に含まれるレコードが含まれない場合には、処理はステップS25に移行する。
 そして、グループ化処理部130は、特定された固定メッシュ要素mについてグループ化未了のレコードが存在するか判断する(ステップS25)。グループ化未了のレコードが存在する場合には、端子Cを介して図5のステップS5へ戻る。一方、特定された固定メッシュ要素mについてグループ化未了のレコードが存在しない場合には、グループ化処理部130は、対応表において未処理の固定メッシュ要素が存在するか判断する(ステップS27)。未処理の固定メッシュ要素が存在する場合には、端子Dを介して図5のステップS3へ処理は戻る。一方、未処理の固定メッシュ要素が存在しない場合には、処理は端子Eを介して図35の処理に移行する。
 固定メッシュ要素m=(0,0)に属するレコード{1,2,3,4,5}のうちグループ化未了のレコードはレコード5((X,Y)=(4,4))であり、レコードrとなる。この場合、近隣固定メッシュ要素のレコードは、レコード{1,2,3,4,5,6,7,8,9}となる。但し、4-6<X<4+6、4-6<Y<4+6の範囲に入る数値属性値を有するレコード群のうち、既にグループ化されており、譲れないレコードである{1,2,4}を除くと、レコード群Rd={3,5,6,7,8,9}となる。
 そして、レコード5を中心にしてl=3となるレコードRlを抽出すると、Rl={3,5,9}となる。そして、このレコードRlの最小矩形は(X,Y)=([3, 7], [1, 4])となる。この最小矩形の左上の点p=(7,4)であるから、この点pを基準にしてサイズd=(6,6)の矩形rectを生成すると、rect:(X,Y)=((1, 7], (-2, 4])となる。この矩形rectに含まれるレコード群Rdから、レコードのグループGは{3,5,8,9}が得られる。このグループGのID属性についての度数分布は、度数分布パターンにおける条件l及びaを満たしている。このグループGの度数分布は、{A:2,B:1,C:1}となり、IDがAであるレコード「9」は譲っても良いことになる。
 従って、図31に示すようなグループ対応表及び図32に示すようなグループ情報表が得られる。ここで、レコード3は、グループ1から譲ってもらったことになるので、グループ1のレコード対応表及びグループ情報表を変更することになる。総合すると、ここまでの処理で、グループ対応表は図33のように変化し、グループ情報表は図34のように変化する。グループ1からレコード3が除外され、グループ5に所属することになる。
 なお、レコード{6,7}だけが残っていることになるが、これらについてはここまでの処理ではグループ化されない。
 そこで、処理は端子Eを介して図35Aの処理に移行する。グループ化処理部130は、グループ化できなかったレコードが存在するか判断する(図35A:ステップS101)。レコード対応表に登録されていないレコードについてはグループ化できなかったと判断できる。グループ化できなかったレコードが存在しない場合には、処理は端子Fを介して図39の処理に移行する。
 一方、グループ化できなかったレコードが存在する場合には、グループ化処理部130は、グループ化できなかったレコードを含む未処理の固定メッシュ要素mを1つ特定する(ステップS103)。そして、グループ化処理部130は、レコード追加処理を実行する(ステップS105)。レコード追加処理については、図35Bを用いて説明する。グループ化処理部130は、固定メッシュ要素mの近隣固定メッシュ要素群に包含されるグループのリストGmを抽出する(ステップS201)。ここでは、グループに含まれる全レコードが近隣固定メッシュ要素群に包含される場合のみ、そのグループはリストGmの要素となる。さらに、グループ化処理部130は、特定された固定メッシュ要素m内のグループ化できなかった未処理のレコードrを1つ特定する(ステップS203)。そして、グループ化処理部130は、リストGmをレコードrからの距離でソートする(ステップS205)。ここで、グループとレコードの距離は、例えばグループの最小矩形の中心点と、レコードとのマンハッタン距離とする。さらに、グループ化処理部130は、距離が短い方からリストGm内の未処理のグループGを特定する(ステップS207)。そして、グループ化処理部130は、グループG及びレコードrを含む最小矩形がdより小さいか判断する(ステップS209)。例えば、グループ毎にその最小矩形が包含される固定メッシュ要素のIDを特定しておくと共に、中心座標を特定しておくと処理が高速化される。固定メッシュ要素(0,1)におけるレコード「6」((X,Y)=(5,7))がステップS203で特定されたとすると、この固定メッシュ要素の近隣固定メッシュ要素群に、グループ5及び1が含まれているので、グループ5及び1がリストGmに含まれることになる。ここでは、図36に示すような状態となる。レコード6を基準に各グループの最小矩形の中心点とのマンハッタン距離で両グループをソートすると、グループ5の方が近いことがわかる。グループ5とレコード6を含む最小矩形はdより大きい。従って、処理はステップS211に移行する。すなわち、ステップS209の条件が満たされない場合にはステップS211に移行する。そして、グループ化処理部130は、リストGmに未処理のグループが存在するか判断する(ステップS211)。未処理のグループが存在すれば処理はステップS207に戻る。図36の例では未処理のグループ1があるので、ステップS207に戻る。グループ1をグループGとして選択して同様に処理を進めると、ステップS209で条件を満たさないと判断され、処理はステップS211に移行する。もうリストGmには未処理のグループがないので、処理はステップS217に移行する。
 一方、グループG及びレコードrを含む最小矩形がdより小さい場合には、グループ化処理部130は、レコードrをそのグループGに加えた場合に度数分布が、度数分布パターンを満たしているか判断する(ステップS213)。レコードrがレコード7であれば、グループ5とレコード7を含む最小矩形はdより小さくステップS213の条件を満たしており、度数分布も{A:2,B:1,C:2}となるので、条件l及びaを満たしている。
 度数分布パターンが満たされない場合には処理はステップS211に移行する。一方、レコードrをそのグループに加えた場合に度数分布が、度数分布パターンを満たしている場合には、グループ化処理部130は、レコードrをグループGに追加登録する(ステップS215)。すなわち、図37のようなグループ対応表が得られ、図38のようなグループ情報表が得られるようになる。グループ対応表及びグループ情報表は、第2データ格納部140に格納される。
 その後、グループ化処理部130は、特定された固定メッシュ要素について、グループ化できなかった未処理のレコードが存在するか判断する(ステップS217)。未処理のレコードが存在する場合には、処理はステップS203に戻る。一方、未処理のレコードが存在しない場合には、処理は図35Aの処理に戻る。図35Aの説明に戻って、グループ化処理部130は、グループ化できなかったレコードを含む未処理の固定メッシュ要素が存在するか判断する(ステップS115)。グループ化できなかったレコードを含む未処理の固定メッシュ要素が存在する場合には、処理はステップS103に戻る。一方、グループ化できなかったレコードを含む未処理の固定メッシュ要素が存在しない場合には、処理は端子Fを介して図39の処理に移行する。
 図39の処理の説明に移行して、グループ化処理部130の処理が終了すると、匿名化処理部150は、第2データ格納部140において未処理のグループをランダムに1つ特定する(ステップS117)。また、匿名化処理部150は、特定されたグループの全レコードを包含する大きさdの矩形をランダムに決定する(ステップS119)。例えば、図40に示すように、レコード{1,2,4}を含むグループ1についての矩形Pを設定する。後には、レコード{3,5,7,8,9}を含むグループ5についての矩形Qをも設定される。なお、図40でもID毎に異なる形状の点をプロットしている。
 このような矩形P及びQは、特定のIDしか存在し得ないような領域(例えばA氏宅敷地)に包含される可能性はない。また、レコード6は異なるIDのレコードが近くに十分にないため、開示対象外となっている。矩形P及びQ同士が重なっているが、それによりレコード3(ID=B)を上手く分け合っている様子がわかる。
 そして、匿名化処理部150は、決定された矩形の中心座標を計算する(ステップS121)。中心以外の座標であっても良い。その後、匿名化処理部150は、特定されたグループに属する未処理のレコードを1つランダム特定する(ステップS123)。そして、匿名化処理部150は、特定されたレコードのデータを第1データ格納部110から読み出して、IDを削除し、位置座標XYを矩形中心座標に置換して、第3データ格納部160における出力テーブルに登録する(ステップS125)。例えば、図41に示すようにレコード2が最初に選択された場合、IDは削除されて、位置座標XYも(2,0)から、矩形の中心座標(2,2)に置換されている。速さという属性値については変更しない。但し、速さ属性の属性値についても変換しても良い。
 そして、匿名化処理部150は、特定されたグループにおいて未処理のレコードが存在するか判断する(ステップS127)。未処理のレコードが存在する場合には処理はステップS123に戻る。一方、未処理のレコードが存在しない場合には、匿名化処理部150は、未処理のグループが存在しているか判断する(ステップS129)。未処理のグループが存在している場合には処理はステップS117に戻る。一方、未処理のグループが存在しない場合には、出力部170は、第3データ格納部160における出力テーブルを、表示装置や印刷装置などの出力装置に出力する(ステップS131)。
 上で述べた例では、図42に示すようなデータが出力されるようになる。図42の例では、行番号が含まれているが、このようなデータについては削除しても良い。
 以上のような処理を行うことで、グルーピングされたレコードだけが開示されるが、各グループは機密属性値についてl種類以上あるので、各グループの範囲が特定のIDしか存在し得ないような領域に包含されることはなく、匿名性が担保される。
 また、開示されるレコードが存在する各範囲は大きさd未満となるため、小さいdを指定することで高精度の分析が可能となる。但し、dが小さいほどどの範囲にも分類されないレコードが増え、そのようなレコードは開示されないため、dを小さくし過ぎることは好ましくない。
 さらに、グループのレコードを含む各範囲が重なることを許容することによって、どの範囲にも分類されないレコードの数を減らすことができる。これは、開示されるレコード数を増やす、すなわち分析に使えるデータ量が増えることになるので、高精度な分析が望める。
 すなわち、本実施の形態によれば、dが指定された場合、匿名性を担保したままそのdに適した精度のデータを開示できる。例えば、測定誤差や、分析側の分析能に基づいてdを決めることで、最も良く匿名性と分析精度の両立をはかることができる。
 以上本技術の実施の形態を説明したが、本技術は、これに限定されない。例えば、処理フローは一例であり、処理結果が変わらない限り、処理順番を入れ替えたり、複数のステップを並列実行する場合もある。
 特に、上で述べた矩形rectを設定する方法は一例である。他のグループの矩形とは無関係に設定できるので、グループに包含されるレコードをメインに考慮して設定できる。
 また、上で述べた例では数値属性が2次元であったが、1次元であっても3次元以上であっても良い。その場合、矩形ではなく線分や直方体など次元数に応じて変化する。
 さらに、情報処理装置100は、1台のコンピュータではなく複数台のコンピュータで機能分担を行う場合もある。さらに、サーバクライアント型の実装形態である場合もある。
 なお、上で述べた情報処理装置100は、例えばコンピュータ装置であって、図43に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
 以上述べた本実施の形態をまとめると、以下のようになる。
 本実施の形態に係る匿名化データ生成方法は、(A)各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出し、(B)グループに属するデータブロックの数値属性値を、グループについて算出された数値属性値で置換する処理を含む。そして、上記所定の領域が、他のグループについての所定の領域とは無関係に決定されるものである。 
 上で述べた所定の領域が他のグループについての所定の領域とは無関係に決定されるので、一部重複することもあるが、そのために機密属性値の度数分布が所定の条件を満たすグループを生成しやすくなり、グループ化漏れも少なくできる。すなわち、分析に用いることができるデータ量が増加し、分析精度が向上する。また、所定の領域のサイズについても調整可能であり、この点についても分析精度向上の要因となる。
 また、本匿名化データ生成方法は、(C)上記グループに属するデータブロックの機密属性値を削除する処理をさらに含むようにしても良い。機密保持のためである。
 さらに、上で述べた抽出する処理は、(a1)グループ化未了の第1のデータブロックを含み且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックの集合についての機密属性値の度数分布が、所定の条件を満たすか判断し、(a2)データブロックの集合についての機密属性値の度数分布が所定の条件を満たさない場合には、所定の条件を満たすようにデータブロックの集合から第2のデータブロックを除外することでデータブロックのグループを生成する処理を含むようにしても良い。このように除外された第2のデータブロックは、他のグループの抽出に用いられるため、上で述べた所定の領域の重複が生じ得る。
 さらに、上で述べた抽出する処理は、(a3)データブロックのグループから、機密属性値の度数分布が所定の条件を満たす上で必須となるデータブロック以外の第3のデータブロックを抽出する処理を含む場合もある。この場合、データブロックの他のグループを抽出する処理において、第3のデータブロックが抽出されるようにしても良い。第3のデータブロックを他のグループの抽出に用いることができるため、グループの抽出が容易になる。
 また、上で述べた所定の条件が、機密属性値の種類数の下限値を含む場合もある。この場合、上で述べた抽出する処理が、(a4)第1のデータブロックを基準に機密属性値の種類数の下限値を満たすように第4のデータブロックを抽出し、(a5)抽出された第4のデータブロックの数値属性値に基づき所定サイズを有する所定の領域を決定する処理を含むようにしても良い。第4のデータブロックが第1のデータブロックから所定の範囲内で抽出できない場合にはグループの抽出は無理なので、他のデータブロックの処理に移行するものである。
 さらに、本匿名化データ生成方法は、(D)いずれのグループにも属しないデータブロックが存在する場合には、所属する第5のデータブロックを包含する領域の基準位置と当該データブロックとの距離が所定のサイズに相当する距離以下であり且つ当該データブロックを加えることで機密属性値の度数分布が所定の条件を満たしたままであれば、当該データブロックを第5のデータブロックのグループに分類する処理をさらに含むようにしても良い。可能な限り漏れなくグループ化することができるようになる。
 また、上で述べた置換する処理が、(b1)グループに属するデータブロックの数値属性値を包含する所定のサイズを有する領域をランダムに生成し、(b2)生成された領域内の位置に対応する数値属性値で、グループに属するデータブロックの数値属性値を置換する処理を含むようにしても良い。これによってグループの特性を保持しつつ匿名化できるようになる。
 なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD-ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。

Claims (9)

  1.  各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、前記複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出し、
     前記グループに属するデータブロックの数値属性値を、前記グループについて算出された数値属性値で置換する
     処理を含み、コンピュータにより実行され、
     前記所定の領域が、他のグループについての所定の領域とは無関係に決定される
     匿名化データ生成方法。
  2.  前記グループに属するデータブロックの機密属性値を削除する
     処理をさらに含む請求項1記載の匿名化データ生成方法。
  3.  前記抽出する処理は、
     前記グループ化未了の第1のデータブロックを含み且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックの集合についての機密属性値の度数分布が、前記所定の条件を満たすか判断し、
     前記データブロックの集合についての機密属性値の度数分布が前記所定の条件を満たさない場合には、前記所定の条件を満たすように前記データブロックの集合から第2のデータブロックを除外することで前記データブロックのグループを生成する
     処理を含む請求項1又は2記載の匿名化データ生成方法。
  4.  前記抽出する処理は、
     前記データブロックのグループから、前記機密属性値の度数分布が前記所定の条件を満たす上で必須となるデータブロック以外の第3のデータブロックを抽出する処理
     を含み、
     データブロックの他のグループを抽出する処理において、前記第3のデータブロックが抽出される
     請求項1乃至3のいずれか1つ記載の匿名化データ生成方法。
  5.  前記所定の条件が、機密属性値の種類数の下限値を含み、
     前記抽出する処理が、
     前記第1のデータブロックを基準に機密属性値の種類数の下限値を満たすように第4のデータブロックを抽出し、
     抽出された前記第4のデータブロックの数値属性値に基づき前記所定サイズを有する所定の領域を決定する
     処理を含む請求項1乃至4のいずれか1つ記載の匿名化データ生成方法。
  6.  いずれのグループにも属しないデータブロックが存在する場合には、所属する第5のデータブロックを包含する領域の基準位置と当該データブロックとの距離が前記所定のサイズに相当する距離以下であり且つ当該データブロックを加えることで前記機密属性値の度数分布が前記所定の条件を満たしたままであれば、当該データブロックを前記第5のデータブロックのグループに分類する処理
     をさらに含む請求項1乃至5のいずれか1つ記載の匿名化データ生成方法。
  7.  前記置換する処理が、
     前記グループに属するデータブロックの数値属性値を包含する前記所定のサイズを有する領域をランダムに生成し、
     生成された前記領域内の位置に対応する数値属性値で、前記グループに属するデータブロックの数値属性値を置換する
     処理を含む請求項1乃至6のいずれか1つ記載の匿名化データ生成方法。
  8.  各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、前記複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出し、
     前記グループに属するデータブロックの数値属性値を、前記グループについて算出された数値属性値で置換する
     処理を、コンピュータに実行させ、
     前記所定の領域が、他のグループについての所定の領域とは無関係に決定される
     匿名化データ生成プログラム。
  9.  各々機密属性値と数値属性値とを含む複数のデータブロックを格納するデータ格納部から、前記複数のデータブロックのうち、グループ化未了の第1のデータブロックを含み且つ機密属性値の度数分布が所定の条件を満たし且つ数値属性値が所定サイズを有する所定の領域内となるデータブロックのグループを抽出するグループ化処理部と、
     前記グループに属するデータブロックの数値属性値を、前記グループについて算出された数値属性値で置換する匿名化処理部と、
     を有し、
     前記所定の領域が、他のグループについての所定の領域とは無関係に決定される
     情報処理装置。
PCT/JP2013/050631 2013-01-16 2013-01-16 秘匿化データ生成方法及び装置 WO2014112045A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP13871426.6A EP2947597B1 (en) 2013-01-16 2013-01-16 Confidential data generation method and device
JP2014557220A JP6015777B2 (ja) 2013-01-16 2013-01-16 秘匿化データ生成方法及び装置
PCT/JP2013/050631 WO2014112045A1 (ja) 2013-01-16 2013-01-16 秘匿化データ生成方法及び装置
US14/749,761 US9747467B2 (en) 2013-01-16 2015-06-25 Anonymized data generation method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/050631 WO2014112045A1 (ja) 2013-01-16 2013-01-16 秘匿化データ生成方法及び装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/749,761 Continuation US9747467B2 (en) 2013-01-16 2015-06-25 Anonymized data generation method and apparatus

Publications (1)

Publication Number Publication Date
WO2014112045A1 true WO2014112045A1 (ja) 2014-07-24

Family

ID=51209171

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/050631 WO2014112045A1 (ja) 2013-01-16 2013-01-16 秘匿化データ生成方法及び装置

Country Status (4)

Country Link
US (1) US9747467B2 (ja)
EP (1) EP2947597B1 (ja)
JP (1) JP6015777B2 (ja)
WO (1) WO2014112045A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069631B2 (en) * 2016-03-17 2018-09-04 Palo Alto Research Center Incorporated Fault-tolerant aggregation of encrypted data in a star network
WO2018028783A1 (en) * 2016-08-10 2018-02-15 Siemens Aktiengesellschaft Big data k-anonymizing by parallel semantic micro-aggregation
WO2019189969A1 (ko) * 2018-03-30 2019-10-03 주식회사 그리즐리 빅데이터 개인정보 익명화 및 익명 데이터 결합 방법
WO2020222140A1 (en) * 2019-04-29 2020-11-05 Telefonaktiebolaget Lm Ericsson (Publ) Data anonymization views

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011197886A (ja) * 2010-03-18 2011-10-06 Fujitsu Ltd プライバシー保護装置、プライバシー保護方法、プライバシー保護プログラム、及びライフログ管理システム
JP2012079205A (ja) * 2010-10-05 2012-04-19 Hitachi Ltd 個人情報匿名化装置及び方法
WO2012090628A1 (ja) * 2010-12-27 2012-07-05 日本電気株式会社 情報保護装置及び情報保護方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013472A (ja) 2002-06-06 2004-01-15 Video Research:Kk 顧客データベース融合方法及び融合処理プログラム、融合リレーショナルデータを記録したコンピュータ読み取り可能な記録媒体
US8112422B2 (en) * 2008-10-27 2012-02-07 At&T Intellectual Property I, L.P. Computer systems, methods and computer program products for data anonymization for aggregate query answering
JP5511532B2 (ja) 2010-06-16 2014-06-04 Kddi株式会社 公開情報のプライバシー保護装置、公開情報のプライバシー保護方法およびプログラム
US10148623B2 (en) * 2010-11-12 2018-12-04 Time Warner Cable Enterprises Llc Apparatus and methods ensuring data privacy in a content distribution network
US8555400B2 (en) 2011-02-04 2013-10-08 Palo Alto Research Center Incorporated Privacy-preserving aggregation of Time-series data
JP5594427B2 (ja) 2011-03-18 2014-09-24 富士通株式会社 秘匿データ処理方法、プログラム及び装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011197886A (ja) * 2010-03-18 2011-10-06 Fujitsu Ltd プライバシー保護装置、プライバシー保護方法、プライバシー保護プログラム、及びライフログ管理システム
JP2012079205A (ja) * 2010-10-05 2012-04-19 Hitachi Ltd 個人情報匿名化装置及び方法
WO2012090628A1 (ja) * 2010-12-27 2012-07-05 日本電気株式会社 情報保護装置及び情報保護方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A. MACHANAVAJJHALA; J. GEHRKE; D. KIFER; M. VENKITASUBRAMANIAM: "1-Diversity: Privacy Beyond k-Anonymity", ACM TRANSACTIONS ON KNOWLEDGE DISCOVERY FROM DATA, vol. 1, no. 1, 2007
O. ABUL; F. BONCHI; M. NANNI: "Never Walk Alone: Uncertainty for Anonymity in Moving Objects Databases", PROCEEDINGS OF THE 24 TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING, ICDE 2008, 2008, pages 376 - 385, XP031245995
SHIN'YA MIYAKAWA ET AL.: "Privacy Joho no Anzen na Ryutsu to Rikatsuyo o Jitsugen suru System no Architecture to Hyoka", FIT2011 (DAI 10 KAI FORUM ON INFORMATION TECHNOLOGY) KEEN RONBUNSHU, vol. 4, 22 August 2011 (2011-08-22), pages 111 - 118, XP008177313 *

Also Published As

Publication number Publication date
JPWO2014112045A1 (ja) 2017-01-19
EP2947597A1 (en) 2015-11-25
EP2947597A4 (en) 2016-01-06
JP6015777B2 (ja) 2016-10-26
EP2947597B1 (en) 2019-06-19
US20150294121A1 (en) 2015-10-15
US9747467B2 (en) 2017-08-29

Similar Documents

Publication Publication Date Title
JP6032467B2 (ja) 時空間データ管理システム、時空間データ管理方法、及びそのプログラム
Zhang et al. 5Ws model for big data analysis and visualization
TW202029079A (zh) 異常群體識別方法及裝置
JP2019532370A (ja) ユーザ権限データ検索方法および電子機器
KR102134952B1 (ko) 데이터 처리 방법 및 시스템
JP6015777B2 (ja) 秘匿化データ生成方法及び装置
JP6293003B2 (ja) プライバシー保護装置、方法及びプログラム
KR101982756B1 (ko) 분산인메모리기반 복합형스트림 데이터처리시스템 및 방법
ElBarawy et al. Improving social network community detection using DBSCAN algorithm
CN112925859A (zh) 数据存储方法和装置
JP7026653B2 (ja) クラスタリング装置、クラスタリング方法及びクラスタリングプログラム
JP2014106691A (ja) 匿名化処理方法及び装置
Ting et al. Constructing a cloud computing based social networks data warehousing and analyzing system
US20120136911A1 (en) Information processing apparatus, information processing method and information processing program
CN106778352B (zh) 集值数据和社会网络数据联合发布的多源隐私保护方法
JP2017107385A (ja) タスク割当装置、方法、及びプログラム
KR101638739B1 (ko) 비정형 텍스트 데이터 처리방법
Lee et al. Fast mining of spatial frequent wordset from social database
TW201828193A (zh) 一種用戶群體的劃分方法和裝置
Nikitopoulos et al. BigCAB: Distributed Hot Spot Analysis over Big Spatio-temporal Data using Apache Spark (GIS Cup)
Zhang et al. Scalable iterative implementation of mondrian for big data multidimensional anonymisation
Koteshwariah et al. A fuzzy version of generalized DBSCAN clustering algorithm
KR101760108B1 (ko) Sns 키워드 경로 분석 시스템
JP6156071B2 (ja) 匿名化データ生成方法、装置及びプログラム
Dolgorsuren et al. SP2: Spanner construction for shortest path computation on streaming graph

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: 13871426

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014557220

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2013871426

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE