WO2011145401A1 - 個人情報匿名化装置 - Google Patents

個人情報匿名化装置 Download PDF

Info

Publication number
WO2011145401A1
WO2011145401A1 PCT/JP2011/058590 JP2011058590W WO2011145401A1 WO 2011145401 A1 WO2011145401 A1 WO 2011145401A1 JP 2011058590 W JP2011058590 W JP 2011058590W WO 2011145401 A1 WO2011145401 A1 WO 2011145401A1
Authority
WO
WIPO (PCT)
Prior art keywords
hierarchical tree
personal information
node
attribute
tree
Prior art date
Application number
PCT/JP2011/058590
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 JP2012515790A priority Critical patent/JP5492296B2/ja
Priority to US13/697,904 priority patent/US20130138698A1/en
Priority to DK11783338.4T priority patent/DK2573699T3/en
Priority to EP11783338.4A priority patent/EP2573699B1/en
Priority to CN201180024517.9A priority patent/CN102893553B/zh
Publication of WO2011145401A1 publication Critical patent/WO2011145401A1/ja

Links

Images

Classifications

    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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
    • 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/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Definitions

  • the present invention relates to anonymization of personal information.
  • the simplest process for anonymizing personal information is to remove information that can identify an individual from the personal information, or to make it ambiguous.
  • a process of removing a name and an address is applicable, and as an example of the latter, a process such as converting an address into units of prefectures or converting an age into increments of 10 years corresponds.
  • a generalized hierarchical tree what is expressed in a tree structure according to the degree of ambiguity is called a generalized hierarchical tree.
  • an individual may be identified by combining a plurality of attributes related to the individual. For example, an individual can be identified as long as it is an extremely rare combination of an address in units of prefectures and an age of 10 years. Thus, in anonymization, it is desired to remove the possibility of identification more reliably.
  • Anonymization that generates threshold data and generates anonymous data that guarantees that any combination of attribute values included in personal information data exists in the data beyond the threshold as a technique for removing identifiability There is technology.
  • the present invention also belongs to this kind of anonymization technology. This type of anonymization technique is described in Non-Patent Document 1.
  • Non-Patent Document 1 At least a threshold number of combinations of arbitrary attribute values appearing in the disclosed data appear by obfuscating attribute values in personal information data using a generalized hierarchical tree. It is stated that it is guaranteed.
  • Non-Patent Document 1 requires that a generalized hierarchical tree that defines the degree of ambiguity be separately defined for each attribute. Moreover, since all candidates that achieve the threshold value or more are output, it is necessary to select the anonymous data to be used, and the means for determining the superiority or inferiority of the usefulness between the anonymous data cannot be automated.
  • the present invention has been made in consideration of such circumstances, and provides for protecting personal information appropriately while reducing the operation cost of personal information anonymization.
  • An example disclosed is a personal information input means for inputting one or more pieces of personal information consisting of attribute values for each attribute, and one attribute is selected, and the attribute value for each attribute value that appears in the selected attribute.
  • This is a personal information anonymization device having means for converting to personal information.
  • Example 1 it is a figure which shows the structural example of a computer.
  • Example 1 it is a figure which shows an example of a personal information table.
  • Example 1 it is a figure which shows an example of the minimum equivalence number information.
  • Example 1 it is a figure which shows an example of attribute classification information.
  • Example 1 it is a figure which shows an example of the generalized hierarchy tree table.
  • Example 1 it is a figure which shows an example of the generalized hierarchy tree table.
  • Example 1 it is a figure which shows an example of the generalized hierarchy tree table.
  • Example 1 it is a figure which shows an example of the generalized hierarchy tree table.
  • Example 1 it is a figure which shows an example of an anonymous information table.
  • FIG. 6 is a diagram illustrating an operation example in the first embodiment.
  • FIG. 6 is a diagram illustrating an operation example in the first embodiment.
  • FIG. 6 is a diagram illustrating an operation example in the first embodiment.
  • FIG. 6 is a diagram illustrating an operation example in the first embodiment.
  • FIG. 6 is a diagram illustrating an operation example in the first embodiment.
  • Example 2 it is a figure which shows the structural example of a computer.
  • Example 2 it is a figure which shows an example of the generation
  • Example 2 it is a figure which shows an operation example.
  • Example 2 it is a figure which shows an operation example.
  • Example 3 it is a figure which shows the structural example of a computer.
  • Example 3 it is a figure which shows an example of a user definition hierarchy tree table.
  • Example 3 it is a figure which shows an example of the generalization hierarchy tree based on a user definition hierarchy tree and a user definition hierarchy tree.
  • Example 3 it is a figure which shows an example of the generalization hierarchy tree based on a user definition hierarchy tree and a user definition hierarchy tree.
  • Example 3 it is a figure which shows an example of the generalization hierarchy tree based on a user definition hierarchy tree and a user definition hierarchy tree.
  • Example 3 it is a figure which shows an operation example.
  • Example 3 it is a figure which shows an operation example.
  • Example 3 it is a figure which shows an operation example.
  • Example 3 it is a figure which shows an operation example.
  • Example 3 it is a figure which shows an operation example.
  • Example 3 it is a figure which shows an operation example.
  • Example 3 it is a figure which shows an operation example.
  • the personal information in the present embodiment refers to information relating to an individual, which can identify a specific individual by name, date of birth, and other information. Further, personal information includes information that can be easily collated with other information, thereby identifying a specific individual.
  • personal information anonymization refers to a process of converting personal information so that the information subject cannot be identified. Also, re-encoding means replacing an attribute value that describes an attribute of an individual with a more ambiguous concept.
  • Fig. 1 shows an example of configuring the device on a computer.
  • a computer 100 is an arbitrary information processing apparatus such as a PC (Personal Computer), a server, or a workstation.
  • the computer 100 includes a CPU (Central Processing Unit) 101, a memory 102, a storage 103, an input device 104, an output device 105, a communication device 106, and the like. All of these are connected to each other by an internal communication line 107 such as a bus.
  • CPU Central Processing Unit
  • the storage 103 is, for example, a CD-R (Compact Disc Recordable), a DVD-RAM (Digital Versatile Disk Random Access Memory), a storage medium such as a silicon disk, a drive device of the storage medium, an HDD (Hard Disk Drive), or the like.
  • the storage 103 stores a personal information table 131, an anonymous information table 132, minimum equivalence number information 133, attribute type information 134, a program 151, and the like.
  • the personal information table 131 stores personal information regarding a plurality of individuals. In this embodiment, each personal information consists of item values for a plurality of items.
  • the anonymous information table 132 stores the result of anonymizing the personal information table 131 according to the present invention.
  • the minimum equivalence number information 133 stores a threshold value.
  • the attribute type information 134 stores the information type of each attribute that the personal information table 131 has.
  • the program 151 is for realizing functions to be described later.
  • the input device 104 is, for example, a keyboard, a mouse, a scanner, a microphone, or the like.
  • the output device 105 is a display, a printer, a speaker, or the like.
  • the communication device 106 is, for example, a LAN (Local Area Network) board or the like, and is connected to a communication network (not shown).
  • the CPU 101 implements the generalized hierarchical tree automatic generation unit 121 and the re-encoding unit 122 by loading and executing the program 151 on the memory 102.
  • the re-encoding unit 122 realizes a loss information amount measuring unit 123 as internal processing as necessary.
  • the generalized hierarchical tree automatic generation unit 121 receives the personal information table 131 and the attribute value type information 134 as input, acquires the frequency of all attribute values from each attribute of the personal information table 131, and acquires the acquired frequency information and attribute value type.
  • a Huffman code tree, a Shannon-Fano code tree, or a Hu-Tucker code tree is created from the attribute type information acquired from the information 134, and the created tree is stored in the generalized hierarchical tree table 135 as a generalized hierarchical tree.
  • the re-encoding unit 122 receives the personal information table 131, the minimum equivalence number information 133, and the generalized hierarchical tree table 135 as input, and attributes thereof according to the generalized hierarchical tree corresponding to each attribute obtained from the generalized hierarchical tree table 135.
  • the number of all records existing on the table is made larger than the value stored in the minimum equivalence number information 133, and the result is output to the anonymous information table 132.
  • the result may be further output to the output device 105.
  • the loss information amount measuring unit 123 is a part that quantitatively evaluates the amount of information lost due to re-encoding of attribute values, and is called from the re-encoding unit 122 as necessary.
  • the personal information table 131 has a plurality of records.
  • One record represents information related to one person.
  • Each record is represented as a tuple of attribute values of attribute 201, attribute 202, and attribute 203.
  • the first line of the table shown in Fig. 2 indicates the attribute name.
  • the attribute 201, the attribute 202, and the attribute 203 represent any one or more of an individual's address, age, country of origin, or region of origin.
  • the items of personal information are not limited to those shown in FIG. 2, and may be arbitrary.
  • the total number of individuals (total number of records) and the number of attributes may be arbitrary.
  • the computer 100 anonymizes information that can identify an individual.
  • Information that can identify an individual is not necessarily limited to information that directly identifies an individual, such as a name. For example, there are cases where an individual can be specified by a combination of gender, age, and address.
  • an attribute for anonymization is determined in advance by the system operator. In the example of FIG. 2, the system operator determines that a combination of address, age, country of origin or region of origin leads to identification of an individual, and anonymizes these three attributes. That is, the entire attribute of personal information need not be limited to address, age, country of origin or region.
  • the example of FIG. 3 shows that the minimum equivalence number 301 is five.
  • This minimum equivalence number 301 is a value that can be regarded as difficult to identify an individual even if data is disclosed if the number of records having the same attribute value tuple is equal to or greater than the minimum equivalence number 301.
  • the value of the minimum equivalence number 301 is not limited to five, and may be arbitrary.
  • the attribute type information 134 defines the information type of the attribute in order to specify the configuration method when configuring the generalized hierarchical tree of each attribute to be anonymized.
  • the generalized hierarchical tree of the attribute “address” 401 is a character string processing type
  • the generalized hierarchical tree of the attribute “age” 402 is an order storage type
  • the attribute “country of origin or origin” This indicates that the generalized hierarchical tree of “region” 403 is generated elsewhere.
  • the type of character string processing is designated.
  • the order preserving type refers to a case in which the order of the leaves of the generalized hierarchical tree that has been configured is determined in advance, and the other refers to those that are neither the character string processing type nor the order preserving type.
  • FIGS. 5a, 5b, and 5c An example of the generalized hierarchical tree table 135 is shown with reference to FIGS. 5a, 5b, and 5c.
  • the generalized hierarchical tree table 135 is generated by the generalized hierarchical tree automatic generation unit 121 with reference to the personal information table 131 and the attribute type information 134.
  • a conceptual diagram of the generalized hierarchical tree 135-a1 created for the attribute “address” 201 with reference to FIG. 5A-1 is shown, and the generalized hierarchical tree with reference to FIG. 5A-2
  • a method of saving the tree 135-a1 on the storage will be described, and a method of managing the generalized hierarchical tree 135-a1 on the memory will be described with reference to FIG. 5 (a-3).
  • the generalized hierarchical tree 135-a1 for the attribute "address" 201 is represented as a tree structure composed of a plurality of nodes and branches.
  • a branch means a parent-child relationship between nodes.
  • a branch is indicated by an arrow line, and the node on the root side of the arrow line is a parent, and the node on the arrow side is a child.
  • the node 501 is a parent and the node 502 is a child.
  • a node that does not have a parent is called a root, and a node that has no children is called a leaf.
  • the node 501 is a root, and the nodes 503 and 504 are leaves.
  • a node that can be reached by following a parent is called an ancestor, and a node that can be reached by following a child is called a descendant.
  • Nodes that are not leaves are called internal nodes.
  • the node 501 and the node 502 are internal nodes.
  • a label 5031 and a frequency 5032 are associated with each node.
  • the original attribute value is associated with the leaf as a label, and the number of occurrences of the attribute value in the personal information table is associated with the frequency.
  • the leaf 503 is labeled “Bunkyo-ku, Tokyo”, and the number of appearances 35 is associated as the frequency.
  • An abstract concept that can represent all its children is assigned to the label of the internal node, and the sum of the frequencies of all children is assigned as the frequency.
  • the attribute “address” 201 is a front-matching character string processing type with reference to the attribute type information 134
  • the node 503 “Bunkyo-ku, Tokyo” and the node 504 “Toshima-ku, Tokyo” are the same parent node 502.
  • “Tokyo” is assigned as the label of the node 502.
  • the frequency of the node 502 the sum of the frequencies of all its children is associated.
  • a generalized hierarchical tree 135-a1 is obtained by performing a forward matching type character string processing on the generalized hierarchical structure of all attribute values and outputting it as a tree structure.
  • FIG. 5A-2 shows an example of a method for saving the generalized hierarchical tree 135-a1 on the storage. It is stored on the storage using a relational database or the like.
  • An example of saving the generalized hierarchical tree 135-a1 as a table on the relational database is a table 135-a2.
  • the first row 511 of the table 135-a2 shows the label of each column, and each record in the second row and thereafter corresponds to one node. That is, the left column means the label of the node, the center column means the label of the parent node of the node, and the right column means the frequency of the node.
  • the record 512 corresponds to the node 501. Since node 501 is a root, it has no parent. In this case, the value NULL is stored in the center column, and the frequency 205 of the node 501 is stored in the right column. Similarly, a record corresponding to the node 502 is a record 513.
  • FIG. 5 (a-3) shows a method of managing the generalized hierarchical tree 135-a1 on the memory.
  • the data structure 521 is an example of a data structure for managing the node 501.
  • the data structure includes a pointer 5211, a pointer 5212 pointing to the parent, a child pointer list 5213, a label 5214 for the node, and a frequency 5215 for the node. Since the data structure 521 representing the node 501 corresponds to the root, the parent pointer is NULL. Similarly, for example, since the node 503 is a leaf, the child pointer list of the data structure representing the node 503 is empty.
  • the attribute “age” 202 is an order storage type.
  • the order storage type refers to an information type for storing the order of leaves. Actually, in the generalized hierarchical tree 135-b1, all the leaves store their magnitude order from left to right. Note that the order is not limited to a large or small order, and an arbitrary order such as a lexicographic order or a manually given order is applicable.
  • the frequency information of the attribute value of the attribute is used to construct the generalized hierarchical tree of the order preservation type.
  • the table 135-b2 is a table showing the frequency of the attribute value of the attribute “age” 202, 50 records having the attribute value “20”, 35 records having the attribute value “25”, and attribute value. This indicates that there are 25 records that take “27”, 40 records that take attribute value “33”, and 55 records that take attribute value “38”, and there are no other records that take attribute values.
  • the attribute value is limited to five types, but it is not necessary to limit to this.
  • the labels of the internal nodes can be specified in the form of a range. For example, at the node 531, a label “20-27” can be designated. In other words, the ranges represented by the two-node labels that are not in an ancestor-descendant relationship do not overlap.
  • FIG. 6 shows a result of automatically generating a generalized hierarchical tree when the attribute type of the attribute “age” is “others” described later.
  • labels are assigned to the internal nodes in the form of ranges.
  • the labels of the nodes 601 and 602 are “25-38” and “33”, respectively, and these nodes have “33” “25-38” even though they are not in an ancestor-descendant relationship. ”Is included in the range.
  • a generalized hierarchical tree having the attribute “country of origin or region” 203 is constructed using FIG.
  • the attribute type information 134 the attribute type of the attribute “country of origin or region” 203 is other. That is, neither the character string processing type nor the order storage type.
  • a generalized hierarchical tree is constructed using only frequency information of all attribute values of the attribute.
  • An example of configuring a generalized hierarchical tree using the frequency information 135-c2 is a tree 135-c1.
  • the label assigned to the internal node is a list of the labels of the leaves below the internal node.
  • the node 541 is assigned the label ⁇ China, France, Germany, USA, UK ⁇ , which is interpreted as "China or France, Germany, USA or UK”.
  • Each attribute value is re-encoded to the node label of the generalized hierarchical tree for that attribute.
  • the node of the re-encoding destination is limited to the ancestor of the leaf corresponding to the original attribute value.
  • the attribute value tuple with respect to all the attributes which appear in the anonymous information table 132 needs to exist at least the number of the minimum equivalence number information 133 in the whole anonymous information table. For example, there must be five or more records having the tuple data tuple 701 (Yokohama City, Kanagawa Prefecture, 33-38, Japan) indicated in the minimum equivalence number information 133.
  • the node labels that are in the relationship between the descendants and the ancestors are not present in the anonymous information table 132, but this is not a limitation. That is, for example, an age cell re-encoded as “20-27” and an age cell re-encoded as “25-27” may coexist.
  • the generalized hierarchical tree automatic generation unit 121 refers to the personal information table 131 and the attribute type information 134, automatically generates a generalized hierarchical tree, and stores the result in the generalized hierarchical tree table 135 (S801). .
  • the re-encoding unit 122 refers to the personal information table 131, the minimum number of equivalence cases 134, and the generalized hierarchical tree table 135, and performs data so that there are five or more arbitrary records indicated in the minimum equivalence number 301. Is re-encoded and the result is stored in the anonymous information table 132 (S802).
  • S801 and S802 are executed continuously, but these steps can be separated as can be seen from the above description. That is, the timing at which the generalized tree automatic generation unit 121 performs S801 and the timing at which the re-encoding unit 122 performs S802 can be made different. However, S801 needs to be executed before S802. By shifting the execution timings of S801 and S802, the following advantages can be obtained.
  • the user of the computer 100 can browse the generalized hierarchical tree automatically generated in S801 and make corrections thereto.
  • the tree that leaves only the internal nodes that are candidates for the re-encoding destination is re-examined.
  • the speed of S802 can be increased.
  • the generalized hierarchical tree other than the above can be modified, and the user can replace the generalized hierarchical tree with a structure that has nothing to do with the automatically generated tree.
  • m is the total number of attributes (number of columns) in the personal information table 131.
  • Each column of the personal information table 131 is called the 0th column, the 1st column,..., The (m ⁇ 1) th column in order from the left.
  • the personal information table 131 is read into the memory 102 (S901), and the parameter j is initialized to 0 (S902).
  • the attribute type of the jth attribute is acquired from the attribute type information 134 (S904), and conditional branching is performed according to the result (S905).
  • attribute type of the attribute is “character string processing type” in S905
  • all attribute values appearing in the personal information table 131 of the jth attribute are listed without being leaked (S911). Specifically, while scanning all records, it is determined whether the attribute values corresponding to the jth attribute have already been enumerated.
  • a data structure such as a set provided in a standard library of C ++, which is a programming language, may be used to determine whether or not they are enumerated.
  • the character string processing designated from the enumerated attribute values is performed, the inclusion relation is extracted, and a tree is constructed based on the inclusion relation (S912).
  • the extraction method of the inclusion relationship depends on various known character string processing methods. For example, in the case of the forward matching type character string processing as in the example of FIG. All are cut out so that the longer matching length is closer to the leaf and the shorter matching length is closer to the root.
  • Two attribute values having a matching portion in the character string are leaves of a subtree having the matching portion as a root, and a matching character string can be assigned to the label of the node serving as the root of the subtree. Labels are assigned to all nodes in an appropriate manner even for character string processing types other than the forward matching type.
  • the attribute type of the attribute is “order preservation type” in S905
  • frequency information of all attribute values of the jth attribute is acquired (S921). Specifically, while scanning all records, it is determined whether the attribute value corresponding to the jth attribute of the record currently being scanned has already been enumerated, and if enumerated, a counter that counts the frequency of the attribute value is counted. The attribute value frequency counter is set to 1 if the attribute value is not enumerated.
  • a map provided by a standard library of C ++ is used. A map can associate a value with an element in the set set described above. The set element is called a key, and the associated value is called a value.
  • the frequency of each attribute value is stored in map.
  • a Hu-Tucker code tree is constructed using the frequency information of the jth attribute acquired above, and this is used as a generalized hierarchical tree of the attribute (S922).
  • labels are assigned to the nodes by an appropriate method. Note that, in the case of the “order preservation type”, as described above, the label of the internal node can be assigned as a simple range of attribute values. After finishing the process of S922, it moves to the process of S941 mentioned later.
  • a Huffman code tree or a Shannon-Fano code tree is constructed using the frequency information of the jth attribute acquired above, and this is used as a generalized hierarchical tree of the attribute (S932). Which code tree is used is determined in advance by the designer of the computer 100.
  • the Huffman code tree construction method is described in the document “TS Han and K. Kobayashi,“ Mathematics of Information and Coding, ”American Mathematical Society, pp. 99-105, 2002”, “h”, etc.
  • the tree construction method is described in the document “T.S. Han and K. Kobayashi,“ Materials of Information and Coding, ”America. n Mathematical Society, pp. 95-96, 2002 "is used. After finishing the process of S932, it moves to the process of S941 mentioned later.
  • J increases monotonically and is always greater than m, and thus the generalized hierarchical tree for all attributes can be constructed.
  • step S941 An example of a method for updating the node frequency information of the generalized hierarchical tree performed by the generalized hierarchical tree automatic generation unit 121 in step S941 will be described with reference to FIG. That is, the generalized hierarchical tree automatic generation unit 121 performs each process of FIG.
  • FIG. 10A shows a large flow of node frequency update of the generalized hierarchical tree, and the routine of FIG. 10B is used recursively internally.
  • Step S1001 is exactly the same as S921.
  • the acquired frequency information is assigned to the corresponding leaf of the generalized hierarchical tree of the jth attribute (S1002). Specifically, the frequency acquired in S1001 is substituted into the frequency 5215 of the corresponding leaf data structure. Do this for all leaves.
  • the routine in FIG. 10B is executed with the root of the jth generalized hierarchical tree as an argument (S1003).
  • the routine in FIG. 10B will be described.
  • the routine of FIG. 10B takes a node as an argument.
  • all the children of the argument nodes are acquired, and this total is set to p (S1004).
  • the p child nodes are referred to as 0th, 1st,..., P ⁇ 1th children.
  • the child pointer list 5213 of the node data structure is acquired. The total number of elements stored in this list is p.
  • the frequency can be set for all nodes.
  • the minimum equivalence number 301 defined by the minimum equivalence number information 133 is represented by k.
  • the personal information table 131 and the generalized hierarchical tree table 135 are loaded onto the memory (S1101). Specifically, the generalized hierarchical tree table 135 is managed on the memory using the data structure 521 described above. As described above, when the generalized hierarchical tree automatic generation S801 and re-encoding S802 are performed at different timings, and the generalized hierarchical tree is modified, the generalized hierarchical tree automatic is performed in this step.
  • the generation unit 121 needs to update the frequency information of the generalized hierarchical tree using the method of FIG.
  • an empty list v for storing nodes is prepared (S1102), and 0 is substituted for j (S1103).
  • a node v is stored in the list v prepared in S1102, and each stored element e indicates that it is a candidate for re-encoding a label of a child of e into a label of e, and is dynamically changed in the process of S802. It will change.
  • step S1104 If it is determined in step S1104 that j is greater than or equal to m, it is determined whether there are k or more all attribute data tuples appearing in the personal information table on the memory (S1107). Specifically, a data structure such as map is prepared, and when all attribute data tuples indicated by records exist in the map key set, the count stored in the value is incremented by one. If all attribute data tuples do not exist in the key set, 1 is assigned as the value to the key. The above is performed for all the records, and it is sufficient to determine whether or not all the values stored in the map are k or more.
  • the loop in S1108 is processed. The loop is performed for all elements w in v.
  • the loss information amount measuring unit 123 calculates the loss information amount when the attribute values of all the records having the node labels of the children of w as data are re-encoded into the w label (S1109). ). A method for calculating the loss information amount will be described later.
  • the re-encoding result on the memory is written in the anonymous information table 132 (S1113). Finish the process.
  • variable I for storing the amount of loss information to be obtained last is initialized to 0 (S1201).
  • the loop S1202 is a loop for all children c of the node w.
  • the loss information amount i is calculated when one record having the c label as data is re-encoded into the w label (S1203). A method for calculating the loss information amount will be described later.
  • count (c) * i is added to I (S1204).
  • count (c) means the total number of records having the label c as data in the personal information table on the memory, and the operation “*” means multiplication on a real number. Specifically, count (c) can be obtained by referring to the node frequency 5215.
  • the loss information amount measuring unit 123 performs each process of FIG. The method described here is not necessarily used.
  • count (c) means the total number of records having the label c as data in the personal information table on the memory, as described above.
  • c and w do not necessarily have a parent-child relationship.
  • the feature of the computer 100 is that it includes a method for automatically forming a generalized hierarchical tree and a method for measuring a loss information amount.
  • the Hu-Tucker code tree, the Huffman code tree, and the Shannon-Fano code tree are trees in which attribute values with a low frequency are arranged deeper and attribute values with a high frequency are arranged shallower as described above. For this reason, in re-encoding, in order to increase the possibility that the infrequent ones are re-encoded to the same label, it is possible to generate highly useful anonymous data avoiding excessive re-encoding. Further, if the above-described code tree is used as a generalized hierarchical tree, it is possible to reduce the amount of loss information at the time of re-encoding. ⁇ Example 2> Next, Example 2 will be described.
  • Example 2 improves the usefulness of data.
  • the same reference numerals are given to the same components as those in the first embodiment, and the description thereof is omitted.
  • the operation of the second embodiment is almost the same as that of the first embodiment.
  • the same reference numerals are given to the operations of this part, and the description is omitted.
  • the storage 103 of the computer 100 has a program 1331 instead of the program 151.
  • the program 1331 is loaded onto the memory, and the CPU 101 implements a pseudo personal information generation unit 1321 in addition to the units 121, 122, and 123 of the first embodiment.
  • a generation information table 1332 is stored on the storage as a storage destination of the processing result of the program 1331.
  • the generation information table 1332 is almost the same as the anonymous information table 132 as shown in FIG. The difference is that in the occurrence information table 1332, each attribute information takes a value corresponding to the leaf of the generalized hierarchical tree of that attribute. More specifically, it is re-encoded as a leaf attribute value corresponding to the descendant of the node of the generalized hierarchical tree corresponding to the label stored in the anonymous information table 132.
  • step S801 in which the generalized hierarchical tree automatic generation unit 121 automatically generates a generalized hierarchical tree and step S802 in which the reencoding unit 122 performs reencoding are completely equivalent to those in the first embodiment.
  • the pseudo personal information generation unit 1321 executes the pseudo personal information generation step S1501. Note that, similarly to the relationship between S801 and S802 described in the first embodiment, it is not necessary to continue to execute S1501, and the timing of processing may be different.
  • the anonymous information table 132 and the generalized hierarchical tree table 135 are acquired on the memory (S1601). After acquisition, the following is performed for the loop (S1602) for all records r and the loop for all attributes of record r (S1603) as an inner loop. However, the attribute currently being processed is the jth attribute.
  • node of the generalized hierarchical tree the attribute value of the jth attribute of the record r corresponds, and the node is set to w (S1604).
  • all the nodes corresponding to the descendants of w are enumerated and set as c1, c2,..., Cn (S1605).
  • a search method such as breadth-first search may be used from w, or after searching once, this search result may be stored in association with a node and reused.
  • the j-th attribute of the record r is a label of w, and this is replaced with a label of one leaf of the generalized hierarchical tree by the following method (S1606).
  • C1, c2, c3,..., Cn are randomly generated with the same probability and replaced with the node labels of the generation results.
  • the feature of the computer 100 configured in the second embodiment is that an application using data is not selected because the attribute value of the generation information table 1332 takes the same set value as the attribute value of the original personal information table 131. .
  • the attribute value of the generation information table 1332 takes the same set value as the attribute value of the original personal information table 131.
  • this data is re-encoded as “10-19 years old”, it cannot be expressed as an integer type and cannot be used for any application.
  • this is replaced with the age between “10-19 years” using the frequency information. For example, “14 years old” is replaced. Therefore, it can be expressed as an integer type and can be used for any application that was available in the original personal information.
  • it can be expected that the distribution of each attribute of the generation information table 1332 is close to the distribution of the original personal information table 131.
  • the description includes a step of configuring the anonymous information table 132.
  • the anonymous information table 132 is configured in advance, and only the pseudo personal information generating unit 1331 is configured later. There is also a way to do it.
  • the system can be configured only by the anonymous information table 132, the generalized hierarchical tree table 135, and the pseudo personal information generating unit 1331. This makes it possible to construct a system that can be used simply by depositing only anonymous information and a generalized hierarchical tree outside the company, and it is a highly anonymous system in the sense that it is not necessary to deposit personal information.
  • Example 3 Next, Example 3 will be described.
  • Example 3 improves the usefulness of data by using the classification of attribute values desired by the user.
  • classifications in various fields such as international disease classification, book classification, and patent classification.
  • classifications such as teens and 20s in terms of age.
  • the third embodiment automatically generates a generalized hierarchical tree in consideration of the classification desired by the user by previously defining only a hierarchical structure that the user desires for the generalized hierarchical tree. For example, by defining the age classification in advance as “20 to 24 years old” and “25 to 29 years old”, the data is not in the form desired by the user, such as “24 to 27 years old”. Prevent re-encoding.
  • a generalized hierarchical tree when a generalized hierarchical tree is configured, addition of nodes in a form that does not deviate from the user-defined hierarchical tree is permitted. For example, when a user defines a classification of “20 to 24 years”, it is permitted to configure a node such as “20 to 22 years” as a child of the node “20 to 24 years”. In addition, when the user has defined “*” that includes all attribute values as the parent of “20 to 24 years old”, the node “20 to 29 years old” as the parent of “20 to 24 years old” Allow new additions. By allowing the addition of hierarchies in a form that does not deviate from the user-defined hierarchy tree, it becomes possible to output more detailed anonymized data while utilizing the classification desired by the user.
  • the storage 103 of the computer 100 stores a personal information table 131, an anonymous information table 132, minimum equivalence number information 133, attribute type information 134, a generalized hierarchical tree table 135, a program 1731, and a user-defined hierarchical tree table 1732. To do.
  • the CPU 101 loads the program 1731 on the memory 102 and realizes a generalized hierarchical tree automatic generation unit 1721 and a re-encoding unit 122 based on the user-defined hierarchical tree.
  • the re-encoding unit 122 realizes a loss information amount measuring unit 123 as internal processing as necessary.
  • the user-defined hierarchical tree table 1732 stores what defines the classification that the user desires for an arbitrary attribute.
  • the user does not need to define a user-defined hierarchical tree for all attributes to be anonymized, but only defines an attribute for which classification is desired. Further, as described above, the user only needs to define the desired classification in each attribute, and it is not necessary to define all the hierarchies.
  • classifications such as “25 to 38 years old” and “20 to 33 years old”, “ ⁇ Yokohama City, Kanagawa Prefecture, Kawasaki City, Kanagawa Prefecture ⁇ ” and “ ⁇ Yokohama City, Kanagawa Prefecture, Fujisawa City, Kanagawa Prefecture ⁇ ” Do not define a classification such as
  • FIG. 18 shows an example of the user-defined hierarchical tree table 1732.
  • FIG. 18A a conceptual diagram of a user-defined hierarchical tree for the attribute “age” is shown, and with reference to FIG. 18B, a method for storing a user-defined hierarchical tree in the storage is shown.
  • a method of managing the generalized hierarchical tree on the memory will be described with reference to 18 (c).
  • FIG. 18A shows an example of a user-defined hierarchical tree for the attribute “age”.
  • the user-defined hierarchical tree is represented as a tree structure composed of a plurality of nodes and branches. Each node is associated with a label representing the classification desired by the user.
  • FIG. 18B shows an example of a method for saving the user-defined hierarchical tree on the storage. It is stored on the storage using a relational database or the like.
  • An example of storing the user-defined hierarchical tree as a table on the relational database is a table 1732-b.
  • the first line 1811 of the table shows the label of each column, and each record in the second and subsequent lines corresponds to one node.
  • FIG. 18C shows a method of managing the user-defined hierarchical tree 1732-a on the memory.
  • a data structure 1821 is an example of a data structure for managing the node 1801.
  • the data structure includes a pointer 18211, a pointer 18212 pointing to the parent, a child pointer list 18213, a label 18214 of the node, and frequency information 18215.
  • FIG. 19 (a-1) is an example of a user-defined hierarchical tree of the character string processing type attribute “address”
  • FIG. 19 (a-2) is a user using the data illustrated in FIG. 5 (a-2). It is an example which comprised the generalized hierarchy tree based on a definition hierarchy tree.
  • the user can define a classification other than the classification extracted from the character string. For example, “Kanagawa Prefecture” can be classified into “ ⁇ Yokohama City, Kanagawa Prefecture, Kawasaki City, Kanagawa Prefecture ⁇ ”, “Kanagawa Prefecture Others”, and the like.
  • the nodes " ⁇ Yokohama City, Kanagawa Prefecture, Kawasaki City, Kanagawa Prefecture ⁇ ” list the labels of the nodes that are children, and have "Yokohama City, Kanagawa Prefecture” and "Kawasaki City, Kanagawa Prefecture” as children. Therefore, it is not necessary to define “Yokohama City, Kanagawa Prefecture” and “Kawasaki City, Kanagawa Prefecture” as children, but it is not clear what kind of node “Kanagawa Prefecture Others” has as a child. Need to define a child of “Kanagawa Other”.
  • FIG. 19 (b-1) shows an example of a user-defined hierarchical tree of the order preservation type attribute “age”
  • FIG. 19 (b-2) shows a user definition using the data illustrated in FIG. 5 (b-2).
  • An example in which a generalized hierarchical tree based on a hierarchical tree is configured is shown.
  • the node label indicates a range of values, and thus it is not necessary to define a child for the node.
  • FIG. 19 (c-1) shows an example of a user-defined hierarchical tree of other attributes “nationality”
  • FIG. 19 (c-2) shows a user-defined hierarchical tree using the data illustrated in FIG. 5 (c-2).
  • An example in which a generalized hierarchical tree based on is constructed is shown. Attributes with an attribute type of “Other”, like the “String processing type” attribute, do not need to define a child when the label of each node enumerates the nodes of the child. In the case of an abstract name such as “”, it is necessary to define what kind of node the child has.
  • the portion surrounded by a dotted line indicates a node that does not need to be re-encoded.
  • a node with a frequency of 0 that is, an attribute value that is classified into nodes in a user-defined hierarchical tree that is classified as a node does not exist in the personal information data
  • the node is not necessary for the re-encoding process. Therefore, a node with a frequency of 0 may be deleted from the generalized hierarchical tree.
  • a node whose node frequency does not differ from the child frequency of the node, that is, a node having only one child whose frequency is not 0 is not necessary for the re-encoding process. Therefore, a node having only one child with a frequency other than 0 may be deleted from the generalized hierarchical tree, and the child of the node and the parent of the node may have a parent-child relationship.
  • the generalized hierarchical tree automatic generation unit 1721 based on the user-defined hierarchical tree refers to the personal information table 131, the attribute type information 134, and the user-defined hierarchical tree table 1732, and performs automatic generation of the generalized hierarchical tree.
  • the generalized hierarchical tree table 135 S2001.
  • the re-encoding unit 122 re-encodes the data and stores the result in the anonymous information table 132 (S802).
  • Step S802 is equivalent to that in the first embodiment. Similar to the relationship between S801 and S802 described in the first embodiment, S2001 and S802 do not need to be executed continuously, and the timing of processing may be different.
  • the personal information table 131 and the user-defined hierarchical tree table 1732 are read into the memory 102 (S2101). At this time, it is confirmed whether there is any overlap in the classification defined by the user-defined hierarchical tree. Specifically, it is checked that the descendants of each node do not overlap at a plurality of nodes that do not have an ancestor-descendant relationship among the nodes constituting the user-defined hierarchical tree. If there is an overlap, the process ends.
  • S902 and S903 are equivalent to those of the first embodiment.
  • S2102 it is determined whether or not a user-defined hierarchical tree in the jth attribute exists. If the user-defined hierarchical tree does not exist, the process proceeds to S2103. If the user-defined hierarchical tree exists, the process proceeds to S2104. Details of S2103 and S2104 will be described later. After the process of S2103 or S2104 is completed, the process proceeds to S943.
  • S2103 The process of S2103 will be described with reference to FIG. S2103 is processing when a generalized hierarchical tree is configured using only information in the personal information table without using a user-defined hierarchical tree. That is, all the processes in S2103 are equivalent to the processes described in the first embodiment.
  • S904 and S905 The processing of S904 and S905 is as described above.
  • the attribute type of the attribute is “character string processing type”
  • the process proceeds to S2311
  • if “order saving type” the process proceeds to S2321, and if “other”, the process proceeds to S2331. Details of S2311, S2321, and S2331 will be described later.
  • the process of S2311, S2321, or 2331 is completed, the process proceeds to S942.
  • y is the number of hierarchies of the deepest hierarchy of the user-defined hierarchy tree 1732. “*” Including all attribute values is defined as layer 0, and is called layer 1, layer 2,.
  • S911 is equivalent to that of the first embodiment.
  • step S2401 the parameter x is initialized to y.
  • a list z listing all nodes of the hierarchy x is prepared using the user-defined hierarchical tree of the jth attribute.
  • one node is selected from the list z, and the selected node is deleted from the list z.
  • nodes that are descendants of the node selected in S2405 are listed. Specifically, when a node having no children is selected in the user-defined hierarchical tree 1732 in S2405, attribute values that are descendants of the node are listed using the attribute value information acquired in S911. For example, when the node “Kawasaki City, Kanagawa” is selected, attribute values including the character string “Kawasaki City, Kanagawa” are listed. If nodes having children are selected in the user-defined hierarchy tree 1732 in S2405, nodes defined as children of the nodes in the user-defined hierarchy 1732 are listed.
  • the character string processing designated from the nodes listed in S2411 is performed, the inclusion relation is extracted, and a tree rooted at the node selected in S2405 is constructed based on the inclusion relation.
  • the tree construction method depends on various known character string processing techniques as in the first embodiment.
  • the constructed tree becomes a part of the generalized hierarchical tree based on the user-defined hierarchical tree.
  • the user-defined hierarchical tree is updated using the constructed tree.
  • the generalized hierarchical tree based on the user-defined hierarchy is configured for the attribute whose attribute type is “character string processing type”.
  • frequency information of a node that becomes a leaf of a subtree to be updated is acquired.
  • the frequency information update target subtree refers to the tree configured in S2412, and the nodes that are the leaves of the subtree indicate all the nodes listed in S2411.
  • the frequency information acquired in S2501 is assigned to the corresponding leaf.
  • frequency information of the node that is a descendant of the node selected in S2405 is acquired. Specifically, when a node having no children is selected in the user-defined hierarchical tree 1732 in S2405, the attribute value frequency information that is a descendant of the node is acquired using the attribute value information acquired in S921. If a node having a child is selected in the user-defined hierarchy tree 1732 in S2405, node frequency information defined as a child of the node in the user-defined hierarchy 1732 is acquired. For example, when the node “20 to 24 years old” is selected in the user-defined hierarchical tree 1732, the attribute values are “20 years old”, “21 years old”, “22 years old”, “23 years old”, and “24 years old”. Get frequency information.
  • a Hu-Tucker code tree rooted at the node selected in S2405 is constructed using the frequency information acquired in S2421.
  • the user-defined hierarchical tree is updated using the constructed tree.
  • the generalized hierarchical tree based on the user-defined hierarchy is configured for the attribute whose attribute type is “order preservation type”.
  • the frequency information of the node attribute value that is a descendant of the node selected in S2405 is acquired. Specifically, when a node having no children is selected in the user-defined hierarchical tree 1732 in S2405, the attribute value frequency information that is a descendant of the node is acquired using the attribute value information acquired in S931. If a node having a child is selected in the user-defined hierarchy tree 1732 in S2405, node frequency information defined as a child of the node in the user-defined hierarchy 1732 is acquired. For example, when “Europe” is selected in the user-defined hierarchical tree 1732, frequency information of “UK”, “France”, and “Germany” is acquired.
  • a Huffman code tree or a Shannon-Fano code tree is constructed using the frequency information acquired in S2431.
  • which code tree is used is determined in advance by the designer of the computer 100.
  • the user-defined hierarchical tree is updated using the constructed tree.
  • the generalized hierarchical tree based on the user-defined hierarchy is configured for the attribute whose attribute type is “other”.
  • a feature of the computer 100 configured in the third embodiment is that a generalized hierarchical tree considering a classification desired by the user by defining a part of attributes having a classification desired by the user and a part of a hierarchy as a user-defined hierarchical tree. Is automatically generated. In addition, by automatically generating a generalized hierarchical tree using frequency information, the data is anonymized with a small amount of loss information.
  • 100 Computer, 101: CPU, 102: Memory, 121: Generalized hierarchical tree automatic generation unit, 122: Re-encoding unit, 123: Loss information amount measurement unit, 103: Storage, 131: Personal information table, 132: Anonymous Information table, 133: Minimum equivalence number information, 134: Attribute type information, 135: Generalized hierarchical tree table, 151: Program, 104: Input device, 105: Output device, 106: Communication device, 107: Internal communication line, 1321 : Pseudo personal information generation unit, 1331: program, 1332: generation information table, 1721: generalized hierarchical tree generation unit based on user-defined hierarchical tree, 1731: program, 1732: user-defined hierarchical tree table.

Landscapes

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

Abstract

個人情報の保護技術において、属性値の一般化階層木を自動で構成する匿名化装置を提供する。また、属性値の一般化時に損失する情報量を定量的に評価することで匿名データ間、及び匿名化途中のデータ間の優劣を自動的に判定できる匿名化装置を提供する。 各個人の情報は複数の属性に対する該個人の属性値を含む。この属性値を曖昧化することで匿名化を達成するが、属性値の曖昧化対象をその曖昧さの程度によって木構造で表現したものを一般化階層木と呼ぶ。本個人情報匿名化装置は、属性値の頻度情報を用いて木を構成することで自動的な構成を達成する。また、損失情報量計量手段を定義することで、一般化階層木を用いて、2つの匿名データ間、または匿名化途中のデータ間の情報量損失を定量的に判定する。

Description

個人情報匿名化装置
 本発明は、個人情報の匿名化に関するものである。
 個人にまつわる膨大なデータの集積化が進む昨今、個人情報を扱う企業にとってはプライバシへの配慮が必要不可欠なものになっている。個人情報取り扱い事業者は、少なくとも個人情報の保護に関する法律(以下、保護法)や関係法令の遵守が必須となっている。保護法は、個人情報の収集や利用等に対して、管理対応を義務付けており、さらにその具体的な措置を各省庁のガイドラインが規定している。
 これらのガイドラインが規定する管理措置の1つに個人情報の匿名化がある。例えば、厚生労働省は医療に関する個人情報の第三者提供、学会発表、医療事故報告等において、特段の必要がない限りはこれを匿名化することを求めている。また、経済産業省でも個人情報の匿名化を第三者提供時の望ましい措置として挙げている。
 最も単純な個人情報匿名化の処理は、個人を識別可能な情報を当該個人情報から取り除くこと、または曖昧にすることである。前者の例としては、氏名や住所を取り除く処理が、後者の例としては住所を都道府県単位に変換する、年齢を10歳刻みに変換するなどの処理が該当する。以降、曖昧化対象をその度合いに応じて木構造で表現したものを一般化階層木と呼ぶ。
 しかし、上述の匿名化処理を行っても、個人に関する複数の属性を組み合わせることで個人を識別できてしまう場合がある。例えば、都道府県単位の住所と10歳刻みの年齢でも極稀な組み合わせであれば個人を特定できる。このように、匿名化では、より確実に識別可能性を除去することが望まれる。
 識別可能性を除去するための技術として、しきい値を設定し、個人情報データに含まれる任意の属性値の組み合わせがデータ中にしきい値以上存在することを保証した匿名データを生成する匿名化技術がある。本発明もこの種の匿名化技術に属する。この種の匿名化技術は、非特許文献1に記載されている。
 非特許文献1には、一般化階層木を用いて個人情報データ中の属性値を曖昧にすることで、開示したデータ中に出現する任意の属性値の組み合わせが少なくともしきい値件数出現することを保証することが記載されている。
K. LeFevre, D. J. DeWitt, and R. Ramakrishnan, "Incognito: Efficient Full-Domain K-Anonymity," 2005 ACM SIGMOD International Conf. Management of Data, pp.49‐60, 2005
 非特許文献1の技術は、曖昧化の度合いを定義する一般化階層木を別途、属性毎に定義する必要がある。また、しきい値以上を達成する候補を全て出力するので、使用する匿名データを選択する必要があり、匿名データ間の有用性の優劣を決定する手段を自動化できない。
 本発明はこのような事情を考慮してなされたもので、個人情報匿名化の運用コストを低減しつつ、適切に個人情報を保護することを提供する。
 一例として開示されるのは、属性毎の属性値からなる個人情報を1件以上入力する個人情報入力手段と、属性を1つ選択し、該選択した属性に出現する属性値毎に該属性値を持つ該入力個人情報の件数をカウントする頻度取得手段を用いて、該属性の各々に対して該入力個人情報に出現する各属性値の上位概念をその曖昧度によって木構造で表現する一般化階層木を自動構成する一般化階層木自動生成手段と、該一般化階層木自動生成手段を用いて該属性の各々に対して生成された一般化階層木を用いて該入力個人情報を再符号化する手段を有する個人情報匿名化装置である。これにより、上述の課題を解決できる。
 自動化による運用コストの低減と適切な個人情報の保護を両立することが可能となる。
実施例1において、計算機の構成例を示す図である。 実施例1において、個人情報テーブルの一例を示す図である。 実施例1において、最小同値件数情報の一例を示す図である。 実施例1において、属性種別情報の一例を示す図である。 実施例1において、一般化階層木テーブルの一例を示す図である。 実施例1において、一般化階層木テーブルの一例を示す図である。 実施例1において、一般化階層木テーブルの一例を示す図である。 実施例1において、一般化階層木テーブルの一例を示す図である。 実施例1において、匿名情報テーブルの一例を示す図である。 実施例1において、動作例を示す図である。 実施例1において、動作例を示す図である。 実施例1において、動作例を示す図である。 実施例1において、動作例を示す図である。 実施例1において、動作例を示す図である。 実施例2において、計算機の構成例を示す図である。 実施例2において、発生情報テーブルの一例を示す図である。 実施例2において、動作例を示す図である。 実施例2において、動作例を示す図である。 実施例3において、計算機の構成例を示す図である。 実施例3において、ユーザ定義階層木テーブルの一例を示す図である。 実施例3において、ユーザ定義階層木とユーザ定義階層木に基づく一般化階層木の一例を示す図である。 実施例3において、ユーザ定義階層木とユーザ定義階層木に基づく一般化階層木の一例を示す図である。 実施例3において、ユーザ定義階層木とユーザ定義階層木に基づく一般化階層木の一例を示す図である。 実施例3において、動作例を示す図である。 実施例3において、動作例を示す図である。 実施例3において、動作例を示す図である。 実施例3において、動作例を示す図である。 実施例3において、動作例を示す図である。 実施例3において、動作例を示す図である。 実施例3において、動作例を示す図である。 実施例3において、動作例を示す図である。
 以下、本発明を実施するための形態を、図面を参照して詳細に説明する。
 なお、以下で説明する3つの実施例は、主に電子的な形態の個人情報を保護する技術である。本実施形態における個人情報とは、個人に関する情報であって、氏名、生年月日、その他の情報などにより特定の個人を識別することができるものを示す。また、他の情報と容易に照合することができ、それにより特定の個人を識別することができるものも個人情報に含む。本実施形態において、個人情報の匿名化とは、情報主体を識別できないように当該個人情報を変換する処理をいう。また、再符号化とは個人のある属性を説明する属性値を、より曖昧な概念へと置き換えることを言う。
<実施例1>
図1を参照し、実施例1の技術を実現する装置の構成例を説明する。
 図1は計算機上に装置を構成した例である。図1において、計算機100は、例えばPC(Personal Computer)やサーバ、ワークステーション等の任意の情報処理装置である。計算機100はCPU(Central Processing Unit)101、メモリ102、ストレージ103、入力装置104、出力装置105、通信装置106等を有する。これらは全て、バスなどの内部通信線107により互いに接続されている。
 ストレージ103は、例えばCD-R(Compact Disc Recordable)やDVD-RAM(Digital Versatile Disk Random Access Memory)、シリコンディスク等の記憶メディア及び当該記憶メディアの駆動装置、HDD(Hard Disk Drive)等である。ストレージ103は、個人情報テーブル131、匿名情報テーブル132、最小同値件数情報133、属性種別情報134、プログラム151等を記憶する。個人情報テーブル131は、複数の個人に関する個人情報を格納する。本実施形態では、各個人情報は、複数の項目ごとの項目値からなる。匿名情報テーブル132は、個人情報テーブル131を本発明により匿名化した結果を格納する。最小同値件数情報133は、しきい値を格納する。属性種別情報134は、個人情報テーブル131が有する各属性の情報種別を格納する。プログラム151は、後述する機能を実現するためのものである。
 入力装置104は例えばキーボード、マウス、スキャナ、マイク等である。出力装置105は、ディスプレイ、プリンタ、スピーカ等である。通信装置106は、例えば、LAN(Local Area Network)ボード等であり、通信ネットワーク(図示略)と接続する。
 CPU101は、メモリ102上にプログラム151をロードし、実行することにより、一般化階層木自動生成部121と再符号化部122を実現する。なお、再符号化部122は必要に応じて内部処理として損失情報量計量部123を実現する。
 一般化階層木自動生成部121は、個人情報テーブル131及び属性値種別情報134を入力とし、個人情報テーブル131の各属性から全ての属性値の頻度を取得し、取得した頻度情報と属性値種別情報134から取得した当該属性の種別情報からHuffman符号木またはShannon-Fano符号木またはHu-Tucker符号木を作成し、作成した木を一般化階層木として一般化階層木テーブル135に格納する。
 再符号化部122は、個人情報テーブル131及び最小同値件数情報133及び一般化階層木テーブル135を入力とし、一般化階層木テーブル135から得られる各属性に対応する一般化階層木にしたがってその属性値を再符号化することで全てのレコードがテーブル上に存在する件数が最小同値件数情報133に格納された値よりも大きくなるようにし、この結果を匿名情報テーブル132に出力する。なお、さらに出力装置105に結果を出力してもよい。
 損失情報量計量部123は属性値の再符号化によりデータの失う情報量を定量的に評価する部分であり、必要に応じて再符号化部122から呼び出される。
 次に上述したテーブル等の詳細な例を説明する。
 まず、図2を参照し、個人情報テーブル131の一例を説明する。
 図2において、個人情報テーブル131は複数のレコードを有する。1つのレコードが1人の個人に関する情報を表す。各レコードは属性201、属性202、属性203の属性値のタプルとして表される。
 図2で表される表の一行目は属性の名前を指す。属性201、属性202、属性203はそれぞれ個人の住所、年齢、出身国または出身地域、のうち任意の一つ以上を表す。
 また上述の個人情報テーブル131内の情報は予め格納されているものとする。
 なお、個人情報の項目は図2に示されるものに限られるわけではなく、任意でよい。また、個人の総数(レコード総数)も属性数も任意で良い。実施例1の計算機100は、個人を特定可能な情報を匿名化するものである。個人を特定可能な情報とは必ずしも氏名等、直接的に個人を特定するものに限らない。例えば、性別、年齢、住所の組み合わせにより個人を特定できる場合がある。本実施形態は、システムの運用者が匿名化を行う属性を予め決定するものである。図2の例では、システムの運用者が住所、年齢、出身国または出身地域、の組み合わせが個人の特定につながると判断し、この3属性に対して匿名化を行う例である。すなわち、個人情報の属性全体が住所、年齢、出身国または出身地域、に限定されている必要はない。
 次に図3を参照して最小同値件数情報133の一例を説明する。
 図3の例は、最小同値件数301が5件であることを示している。この最小同値件数301は、同じ属性値タプルを持つレコードの数が最小同値件数301以上であれば、データを公開しても個人を特定することが困難であると見なせる値である。図3の例ではデータ中に出現する任意の属性値タプルが5件以上データ中に出現すれば開示しても安全であると見なすことを示す。
 なお、最小同値件数301の値は5件に限定されるものではなく、任意で良い。
 次に図4を参照して属性種別情報134の一例を説明する。
 属性種別情報134は、匿名化を行う各属性の一般化階層木を構成する上で、構成方法を指定するためにその属性の持つ情報種別を規定するものである。図4の例の表134-aでは、属性「住所」401の一般化階層木を文字列処理型で、属性「年齢」402の一般化階層木を順序保存型で、属性「出身国または出身地域」403の一般化階層木をその他で生成することを示している。表134-bのように、文字列処理型の属性に関してはその文字列処理のタイプを指定する。表134-bでは、属性「住所」404を前方一致型で処理することを意味している。なお、順序保存型とは構成された一般化階層木の葉の順序を予め決定しておく場合を指し、その他とは文字列処理型でも順序保存型でもないものを指す。
 次に図5a、図5b、図5cを参照し、一般化階層木テーブル135の一例を示す。
 ここで、上述のように、一般化階層木テーブル135は、一般化階層木自動生成部121が個人情報テーブル131と属性種別情報134を参照して生成するものである。まず、図5(a-1)を参照して属性「住所」201に対して作成した一般化階層木135-a1の概念図を示し、図5(a-2)を参照して一般化階層木135-a1をストレージ上に保存する方法を示し、図5(a-3)を参照して一般化階層木135-a1をメモリ上に管理する方法を示す。
 図5(a-1)において、属性「住所」201に対する一般化階層木135-a1は複数の節点と枝から成る木構造として表される。枝は節点間の親子関係を意味する。枝は矢線を用いて示され、矢線の根側の節点が親であり、矢側の節点が子である。例えば節点501と節点502の関係において、節点501が親であり節点502は子である。親を持たない節点を根と呼び、子を持たない節点を葉と呼ぶ。例えば、節点501は根であり、節点503や節点504などは葉である。親を辿ることで行き着くことができる節点を祖先と呼び、子を辿ることで行き着くことのできる節点を子孫と呼ぶ。葉でない節点は内部節点と呼ばれる。
 例えば、節点501や節点502等は内部節点である。各節点にはラベル5031と頻度5032が関連付けられる。葉にはラベルとして元の属性値が関連付けられ、頻度として個人情報テーブル中にその属性値が出現する件数が関連付けられる。例えば、葉503は「東京都文京区」とラベル付されており、その出現件数35が頻度として関連付けられている。内部節点のラベルには、その子を全て表すことができる抽象的な概念が割り当てられ、またその頻度として全ての子の頻度の総和が割り当てられる。
 例えば、属性「住所」201は属性種別情報134を参照すると前方一致型の文字列処理型であるので、節点503「東京都文京区」と節点504「東京都豊島区」は同じ親節点502としてより抽象的な概念へと一般化され、節点502のラベルとしては「東京都」が割り当てられている。また、節点502の頻度として、その全ての子の頻度の総和が関連付けられている。同様にして、全ての属性値の一般化階層構造を前方一致型の文字列処理を行って木構造として出力した結果が一般化階層木135-a1である。
 図5(a-2)において、一般化階層木135-a1をストレージ上に保存する方法の一例を示す。ストレージ上にはリレーショナルデータベース等を用いて保存される。リレーショナルデータベース上のテーブルとして、一般化階層木135-a1を保存する一例がテーブル135-a2である。
 テーブル135-a2の一行目511は、各カラムのラベルを示し、2行目以降の各レコードは1つの節点に対応する。すなわち、左列は当該節点のラベルを意味し、中央列は当該節点の親節点のラベルを意味し、右列は当該節点の頻度を意味する。例えば、レコード512は節点501に対応するものである。節点501は根であるから、親を持たない。この場合、中央列にはNULLという値を保管し、節点501の頻度205を右列に保管する。同様に、節点502に対応するレコードがレコード513である。
 なお、前方一致型の文字列処理型の属性の場合に限らず、任意の属性種別に対する一般化階層木がこの方法でストレージ上に保存可能である。
 図5(a-3)において、一般化階層木135-a1をメモリ上で管理する方法を示す。データ構造521は節点501を管理するデータ構造の一例である。データ構造はポインタ5211と親を指し示すポインタ5212と子のポインタリスト5213と当該節点のラベル5214と当該節点の頻度5215によって構成される。節点501を表すデータ構造521は根に対応するから、親のポインタはNULLである。同様に例えば、節点503は葉であるから、節点503を表すデータ構造の子のポインタリストは空となる。
 なお、前方一致型の文字列処理型の属性の場合に限らず、任意の属性種別に対する一般化階層木がこの方法でメモリ上に管理できる。
 次に図5(b-1)を用いて、属性「年齢」202の一般化階層木を構成した一例を木135-b1に示す。属性種別情報134を参照すると、属性「年齢」202は順序保存型である。順序保存型とは葉の順序を保存する情報種別を指し、実際、一般化階層木135-b1において、全ての葉がその大小順序を左から右に保存している。なお、順序としては大小順序に限らず、辞書式順序や、人手で与えた順序など、任意の順序が適用可能である。順序保存型の一般化階層木の構築には、その属性の属性値の頻度情報を用いる。
 テーブル135-b2は、属性「年齢」202の属性値の頻度を表にしたものであり、属性値「20」を取るレコードが50件、属性値「25」を取るレコードが35件、属性値「27」を取るレコードが25件、属性値「33」を取るレコードが40件、属性値「38」を取るレコードが55件であり、その他の属性値を取るレコードは存在しないことを指す。この例では属性値を5種類に限定しているが、これに限定する必要はない。頻度テーブル135-b2を利用して順序保存型で一般化階層木を構築すると一般化階層木135-b1が生成される。
 なお、一般化階層木135-b1では大小順序を保存する形で一般化階層木を構成したことにより、内部節点のラベルが範囲の形で指定できる。例えば、節点531では、「20-27」というラベルが指定出来る。言い換えれば、祖先と子孫の関係にない2節点のラベルの表す範囲が重なってしまうことがない。
 図6を参照して、属性「年齢」の属性種別が仮に後述の「その他」であった場合に一般化階層木を自動生成した結果を示す。この例では、作為的に内部節点に範囲の形でラベルを割り当てている。図6の例において、節点601と節点602のラベルはそれぞれ「25-38」と「33」であり、これらの節点は祖先と子孫の関係にないにも関わらず「33」が「25-38」の範囲に含まれる形となっている。
 次に、図5(c-1)を用いて属性「出身国または出身地域」203の一般化階層木を構成した一例を示す。属性種別情報134を参照すると、属性「出身国または出身地域」203の属性種別はその他である。すなわち、文字列処理型でも順序保存型でもない。この場合には、属性の全ての属性値の頻度情報のみを用いて一般化階層木を構成する。
 頻度情報135-c2を用いて一般化階層木を構成した一例が木135-c1である。内部節点に割り当てられているラベルは、その内部節点よりも下位にある葉のラベルを列挙したものである。例えば、節点541では{中国、仏国、独国、米国、英国}というラベルが割り当てられているが、これは「中国または仏国または独国または米国または英国」と解釈する。
 図7を参照して、匿名情報テーブル132の一例を説明する。各属性値はその属性に対する一般化階層木の節点のラベルに再符号化される。このとき、再符号化先の節点は、元の属性値に対応する葉の祖先に限る。また、匿名情報テーブル132中に出現する全ての属性に対する属性値タプルが、匿名情報テーブル全体の中で最小同値件数情報133の件数は少なくとも存在している必要がある。例えば、データタプル701(神奈川県横浜市、33-38、日本)というタプルを持つレコードが最小同値件数情報133に示される5件以上存在していなくてはならない。
 なお、図7の例では、子孫、祖先の関係にある節点のラベルが匿名情報テーブル132中に共に存在しない形式となっているが、その限りではない。すなわち、例えば「20-27」と再符号化される年齢のセルと「25-27」と再符号化される年齢のセルが共存してもよい。
 次に、図8を参照し、計算機100の動作例を説明する。
 まず、一般化階層木自動生成部121は、個人情報テーブル131および属性種別情報134を参照し、一般化階層木の自動生成を行い、その結果を一般化階層木テーブル135に格納する(S801)。次に、再符号化部122が、個人情報テーブル131および最小同値件数134ならびに一般化階層木テーブル135を参照し、任意のレコードが最小同値件数301に示された5件以上存在するようにデータを再符号化し、その結果を匿名情報テーブル132に格納する(S802)。
 なお、図8では、S801とS802を続けて実行しているが、上記の説明からも分かるようにこれらのステップは分離できる。すなわち、一般化木自動生成部121がS801を行うタイミングと再符号化部122がS802を行うタイミングを別にすることが可能である。ただし、S801はS802よりも以前に実行されている必要がある。S801とS802の実行のタイミングをずらすことで次のようなメリットを享受できる。S801によって自動的に生成された一般化階層木を計算機100の利用者が閲覧して、これに修正を加えることができる。例えば、S801によって自動生成された一般化階層木の全ての内部節点を再符号化先の候補とする必要がない場合には、再符号化先の候補とする内部節点のみを残した木を改めて一般化階層木とすることでS802の高速化が可能である。また、前記以外の一般化階層木に対する修正も可能であり、さらに自動生成された木と全く関係のない構造を持った一般化階層木に利用者が置き換えることも可能である。
 次に図9を参照して、一般化階層木自動生成部121が上記S801で一般化階層木を自動構成する詳細な動作例を説明する。すなわち、図9の各処理を行うのは一般化階層木自動生成部121である。
 まず、いくつかの表記法を定義する。mは個人情報テーブル131の属性の総数(列数)である。個人情報テーブル131の各列を左から順番に0番目の列、1番目の列、・・・、m-1番目の列と呼ぶ。
 図9でははじめに、個人情報テーブル131をメモリ102上に読み込み(S901)、パラメタjを0に初期化する(S902)。
 次に、jがmより小さいかどうかを確認し(S903)、jがm以上であれば処理を終了する。
 S903の判定でjがmよりも小さい場合には、j番目の属性の属性種別を属性種別情報134から取得し(S904)、その結果に従って条件分岐する(S905)。
 S905で当該属性の属性種別が「文字列処理型」の場合は、まず、j番目の属性の個人情報テーブル131に出現する全ての属性値を漏らすことなく列挙する(S911)。具体的には、レコードを全件走査しながら、j番目の属性に対応する属性値を既に列挙したかを判別し、列挙していない場合は列挙する。列挙したかどうかの判別には、例えばプログラミング言語であるC++の標準ライブラリで提供されるset等のデータ構造を用いればよい。
 次に列挙した属性値から指定された文字列処理を行い、包含関係を抽出し、その包含関係に基づいて木を構成する(S912)。包含関係の抽出方法は、既に知られている様々な文字列処理手法に依るが、例えば図5(a-1)の例のように前方一致型の文字列処理の場合には、一致部分を全て切り出して、一致長の長い方が葉に近い方に、一致長の短い方が根に近い方になるように構成する。文字列に一致部分がある2つの属性値は、その一致部分を根とする部分木の葉となり、当該の部分木の根となる節点のラベルには、一致した文字列を割り当てることができる。前方一致型以外の文字列処理型に対しても、適切な方法でラベルを全ての節点に割り当てる。なお、特にラベルの内容を気にしない場合は、当該節点の子孫となる葉全てを列挙したものでもよい。例えば、{東京都文京区、東京都豊島区、東京都板橋区}などである。S912の処理を終えたら、後に記述するS941の処理に移る。
 S905で当該属性の属性種別が「順序保存型」の場合は、まず、j番目の属性の全ての属性値の頻度情報を取得する(S921)。具体的には、レコードを全件走査しながら、現在走査中のレコードのj番目の属性に対応する属性値を既に列挙したかを判別し、列挙した場合は当該属性値の頻度を数えるカウンタを1つ増加させ、列挙していない場合は当該属性値の頻度のカウンタを1にセットする。データ構造として、C++の標準ライブラリで提供されるmap等を用いる。mapは前述のsetの集合内の要素に、値を関連付けられるもので、集合の要素をキー、関連付ける値をバリューと呼ぶ。レコード全件の走査が終了した時には、mapに各属性値の頻度が記憶されている。
 次に、上記で取得したj番目の属性の頻度情報を用いてHu-Tucker符号木を構成し、これを当該属性の一般化階層木とする(S922)。この符号木の構成方法は文献「D.E. Knuth, “The Art of Computer Programming: Volume 3 Sorting and Searching,” Addison-Wesley, pp.439‐444, 1973」に記載の方法等を用いる。この場合も、S912と同じように、適切な方法で節点にラベルを割り当てるものとする。なお、「順序保存型」の場合には、前述のように属性値の素な範囲として内部節点のラベルを割り当てることができる。S922の処理を終えた後は後述するS941の処理に移る。
 S905で当該属性の属性種別が「その他」の場合は、まず、j番目の属性の全ての頻度情報を取得する(S931)。これは、処理S921と全く等価な処理である。
 次に、上記で取得したj番目の属性の頻度情報を用いてHuffman符号木あるいはShannon-Fano符号木を構成し、これを当該属性の一般化階層木とする(S932)。どちらの符号木を用いるかは、計算機100の設計者があらかじめ決定しておく。なお、Huffman符号木の構成方法は文献「T.S. Han and K. Kobayashi, “Mathematics of Information and Coding,” American Mathematical Society, pp.99‐105, 2002」等に記載の方法を用い、Shannon-Fano符号木の構成方法は文献「T.S. Han and K. Kobayashi, “Mathematics of Information and Coding,” America
n Mathematical Society, pp.95‐96, 2002」に記載の方法等を用いる。S932の処理を終えた後は、後述するS941の処理に移る。
 S912またはS922またはS932の処理を終えた後、各々のステップで構成した一般化階層木の各節点の頻度情報を更新する(S941)。なお、より詳細な更新方法を、図10を用いて後に説明する。
 次に、構成した一般化階層木を、一般化階層木テーブル135に保存し(S942)、jにj+1を代入し(S943)、前述のS903の評価に戻る。
 jは単調に増加し、必ずmよりも大きくなるから、以上を以て全ての属性に対する一般化階層木は構成できる。
 図10を用いて、一般化階層木自動生成部121がS941のステップで行う一般化階層木の節点頻度情報の更新方法の一例を説明する。すなわち、図10の各処理を行うのは一般化階層木自動生成部121である。
 図10(a)は一般化階層木の節点頻度更新の大きな流れで、内部的に図10(b)のルーティンを再帰的に用いる。
 まず、j番目の属性の全ての属性値の頻度情報を取得する(S1001)。ステップS1001はS921と全く同等の処理である。
 次に取得した頻度情報をj番目の属性の一般化階層木の対応する葉に割り当てる(S1002)。具体的には、対応する葉のデータ構造の頻度5215に、S1001で取得した頻度を代入する。これを全ての葉に対して行う。
 図10(b)のルーティンを、j番目の一般化階層木の根を引数として実行する(S1003)。
 図10(b)のルーティンを説明する。図10(b)のルーティンは、節点を引数に取る。まず、引数節点の子を全て取得し、この総数をpとする(S1004)。便宜上、p個の子節点を0、1、・・・、p-1番目の子と呼ぶ。具体的には、節点のデータ構造の子のポインタリスト5213を取得する。このリストに格納されている要素の総数がpである。
 次に、iに0を代入する(S1005)。
 次にiがpより小さいかどうかを判定し(S1006)、p以上であれば後に説明するS1010に処理を移行する。
 S1006の判定で、iがpよりも小さければ、i番目の子に頻度が既に割り当てられていないかどうかを判定する(S1007)。もしも既に頻度が割り当てられていれば、iにi+1を代入し(S1009)、S1006に戻る。
 S1007の判定でi番目の子に未だ頻度が割り当てられていなければ、図10(b)のルーティンを、i番目の子を引数として実行し(S1008)、これが終了した後iにi+1を代入し(S1009)、S1006に戻る。
 S1006の判定でiがp以上であれば、0、1、・・・、p-1番目の子の頻度の総和を当該節点の頻度として設定する(S1010)。
 以上により、全ての節点に頻度を設定できる。
 次に、図11を参照して、再符号化部122が再符号化処理S802で実行する処理の詳細を説明する。すなわち、図11の各処理を実行するのは再符号化部122である。以降、最小同値件数情報133で定義する最小同値件数301をkで表す。
 まず、個人情報テーブル131および一般化階層木テーブル135をメモリ上にロードする(S1101)。一般化階層木テーブル135は具体的には前述のデータ構造521を用いてメモリ上で管理される。なお、前述のように、一般化階層木の自動生成S801と再符号化S802を別のタイミングで行って、一般化階層木に修正を加えたりした場合には、このステップで一般化階層木自動生成部121が一般化階層木の頻度情報を図10の方法を用いて更新する必要がある。
 次に、節点を格納する空のリストvを準備し(S1102)、jに0を代入する(S1103)。S1102で準備するリストvには節点が格納され、格納される各要素eは、eの子のラベルをeのラベルに再符号化する候補であることを指し、S802の処理内において動的に変化するものである。
 次に、jがmよりも小さいかどうか判定する(S1104)。jがmよりも小さいと判定された場合には、j番目の一般化階層木において、全ての子が葉である節点を全てvに追加する(S1105)。jにj+1を代入し(S1106)、S1104に戻る。
 S1104の判定でjがm以上であると判定された場合には、メモリ上の個人情報テーブルに出現する全ての全属性データタプルがk件以上存在するかを判定する(S1107)。具体的にはmapなどのデータ構造を用意し、mapのキー集合の中にレコードの示す全属性データタプルが存在する場合にはそのバリューに保存するカウントを1だけカウントアップする。キー集合の中に全属性データタプルが存在しない場合にはそのキーに対して、バリューとして1を代入する。以上を、全てのレコードに対して行い、mapに格納されている全てのバリューがk以上であるかどうかを判定すれば良い。
 S1107の判定で、k件未満しかないデータタプルが存在すると判定された場合には、S1108のループを処理する。ループはv内の全ての要素wに対して行う。
 ループS1108内では、wの子の節点のラベルをデータとして持つ全てのレコードの当該属性値をwのラベルに再符号化した場合の損失情報量を、損失情報量計量部123に計算させる(S1109)。この損失情報量の計算方法については、後に説明する。
 ループS1108を終えたら、vの中で最も損失情報量の小さい節点uの子の節点のラベルをデータとして持つ全てのレコードの当該ラベルをuのラベルに再符号化する(S1110)。
 次にuの子を全て削除し、uを葉とすることで、uを含む一般化階層木を更新する(S1111)。
 次に、uの親をtとし、tの全ての子が葉であれば、tをvに追加し(S1112)、S1107の判定に戻る。
 S1107の判定で、メモリ上の個人情報テーブルで、全ての全属性データタプルがk件以上存在すると判定された場合には、メモリ上の再符号化結果を匿名情報テーブル132に書き出して(S1113)、処理を終える。
 次に、図12(a)を参照して、wの子の節点のラベルをデータとして持つ個人情報テーブル中の全てのレコードをwのラベルに再符号化した場合に損失する情報量の計算を行う損失情報量計量部123を用いた処理S1109の詳細を説明する。すなわち、図12(a)の各処理を行うのは、損失情報量計量部123である。
 まず、最後に求める損失情報量を格納する変数Iを0に初期化する(S1201)。ループS1202は、節点wの全ての子cに対するループである。
 ループS1202では、内部で、cのラベルをデータとして持つ1レコードをwのラベルに再符号化した場合の損失情報量iを計算する(S1203)。損失情報量の計算方法は後に説明する。次にIにcount(c)*iを加算する(S1204)。なお、count(c)はメモリ上の個人情報テーブルでcのラベルをデータとして持つレコードの総数を意味し、演算「*」は実数上の乗算を意味する。具体的には、count(c)は節点の頻度5215を参照することで得ることができる。
 ループS1202を終了した後、Iを返し処理を終える。
 次に図12(b)を参照して、cのラベルをデータとして持つ1レコードをwのラベルに再符号化した場合の損失情報量の計算方法S1203の詳細の一例を説明する。図12(b)の各処理を行うのは損失情報量計量部123である。必ずしもここに説明する方法を用いる必要はない。
 cのラベルをデータとして持つ1レコードをwのラベルに再符号化した時にデータが失う情報量を、-log {count(c)/count(w)}で計算する(S1205)。なお、logの底は通常2を用いるが、定数倍しか変化しないため何を用いても構わない。しかし、システムの中では統一する必要がある。またcount(c)は前述と同様に、メモリ上での個人情報テーブルでcのラベルをデータとして持つレコードの総数を意味する。
 なお、図12(b)に示す再符号化時の損失情報量の計算方法において、cとwは必ずしも親子関係にある必要はない。wがcの祖先であれば任意の節点間に対して定義できる。実際、cの祖先に節点dがあり、dの祖先に節点wがある場合、-log {count(c)/count(w)}=[-log {count(c)/count(d)}]+[-log {count(d)/count(w)}]を満たす。これは、cを再符号化してdにした後、dを再符号化してwにした場合の損失情報量と、cを直接wに再符号化した場合の損失情報量が等しいことを意味する。
 以上のように、計算機100の特長は自動的に一般化階層木を構成する手法と損失情報量の計量方法を備えることである。Hu-Tucker符号木やHuffman符号木およびShannon-Fano符号木は、前述のように頻度の小さい属性値を深い方に配置し、頻度の大きい属性値を浅い方に配置する木である。このため、再符号化に際して、頻度の小さいもの同士が同じラベルに再符号化される可能性を高くするため、過度の再符号化を避けた有用性の高い匿名データを生成できるものである。また、前述の符号木を一般化階層木として用いれば、再符号化時の損失情報量を小さくすることが可能である。

<実施例2>
 次に実施例2について説明する。
 実施例2はデータの有用性を向上させるものである。以下、実施例2を説明する場合、上述の実施例1と重複する構成に対しては同じ符号を付与して説明を省略する。また、実施例2は動作のほとんどは実施例1と同様である。この部分の動作に対しては、同じ符号を付与して説明を省略する。
 まず、図13を参照して、実施例2の計算機100の構成例について説明する。
 図13において、計算機100のストレージ103は、プログラム151の代わりにプログラム1331を有する。プログラム1331がメモリ上にロードされ、CPU101は、実施例1の各部121、122、123に加えて擬似個人情報発生部1321を実現する。また、プログラム1331の処理結果の格納先として、ストレージ上に発生情報テーブル1332を有する。
 次に図14を参照して、発生情報テーブル1332の詳細を説明する。
 発生情報テーブル1332は図14に示されるように、ほとんど匿名情報テーブル132と同様のものである。その違いは、発生情報テーブル1332では、各属性情報はその属性の一般化階層木の葉に対応した値を取ることである。より具体的には、匿名情報テーブル132に格納されたラベルに対応する一般化階層木の節点の、子孫に対応する葉の属性値として改めて符号化されたものである。
 次に図15を参照して、実施例2の計算機100の処理の流れを説明する。
 図15において、一般化階層木自動生成部121が一般化階層木を自動生成するステップS801と再符号化部122が再符号化を行うステップS802は実施例1のものと完全に等価である。これらの処理を終えた後、擬似個人情報発生部1321が擬似個人情報発生ステップS1501を実行する。なお、実施例1にて示したS801とS802の関係と同様に、S1501も続けて実行する必要はなく、処理を行うタイミングは別々で構わない。
 図16を参照して、擬似個人情報発生部1321が頻度情報を用いて擬似個人情報発生処理を実行するS1501の詳細の一例を説明する。すなわち図16の各処理を行うのは擬似個人情報発生部1321である。
 まず、メモリ上に匿名情報テーブル132と一般化階層木テーブル135を取得する(S1601)。取得後、全てのレコードrに対してのループ(S1602)と、さらに内部ループとしてレコードrの全ての属性についてのループ(S1603)に対して以下を行う。ただし、現在処理中の属性をj番目の属性とする。
 まず、レコードrのj番目の属性の属性値が一般化階層木のどの節点に対応するかを特定し、当該節点をwとする(S1604)。次に、wの子孫に相当する節点で葉となるものを全て列挙し、これをc1、c2、・・・、cnとおく(S1605)。具体的にはwから幅優先探索などの探索方法を用いてもよいし、一度探索した後は節点にこの探索結果を関連付けて記憶して、これを再利用してもよい。
 次に、レコードrのj番目の属性がwのラベルとなっているが、これを以下に示すような方法で一般化階層木の1つの葉のラベルに置き換える(S1606)。一般化階層木に保管されている節点の頻度情報を用いて、count(c1)/count(w)の確率でc1のラベルを選び、count(c2)/count(w)の確率でc2を選び、同様の確率でc1、c2、c3、・・・、cnをランダムに発生させて、発生結果の節点のラベルに置き換える。
 最後に全てのレコードを発生情報テーブル1332に格納する(S1607)。
 実施例2で構成した計算機100の特長は、発生情報テーブル1332の属性値が元の個人情報テーブル131の属性値と同じ集合の値を取るために、データを利用するアプリケーションを選ばない点である。例えば、年齢が10歳ということを示すレコードがあったとき、メモリ上では整数型として保持していることが多い。このデータが「10-19歳」という再符号化を行われると、整数型として表現することができないため、任意のアプリケーションに利用できない。しかし、実施例2ではこれを「10-19歳」の間の年齢に頻度情報を用いて置き換える。例えば、「14歳」などに置き換える。したがって整数型として表現でき、元の個人情報では利用できていた任意のアプリケーションに利用できるということになる。また、発生情報テーブル1332の各属性の分布が元の個人情報テーブル131の分布に近くなることが期待できる。
 なお、実施例2では匿名情報テーブル132を構成するステップを含む形で説明を行ったが、前述のように事前に匿名情報テーブル132を構成しておいて擬似個人情報発生部1331のみを後で行う方法もある。この方法によれば、個人情報テーブル131を必要としないので、匿名情報テーブル132と一般化階層木テーブル135と擬似個人情報発生部1331のみでシステムを構成できる。これにより、匿名情報と一般化階層木のみを社外に預託するだけで利用可能なシステムを構築でき、個人情報を預託する必要がないという意味において匿名性の高いシステムである。

<実施例3>
 次に実施例3について説明する。
 実施例3は、ユーザが望む属性値の分類を用いることにより、データの有用性を向上させるものである。国際疾病分類、図書分類、特許分類など様々な分野において、決められた分類が存在している。また、年齢ならば10代、20代のようによく用いられる分類が存在する。実施例3は、ユーザが一般化階層木に望む階層構造のみを予め定義しておくことで、ユーザの望む分類を考慮した一般化階層木を自動生成するものである。例えば、年齢の分類を「20歳から24歳」、「25歳から29歳」と予め定義しておくことで、「24歳から27歳」のようにユーザが望む分類から外れる形でデータが再符号化されることを防ぐ。
 なお、実施例3は、一般化階層木を構成する際に、ユーザ定義階層木に外れない形での節点の追加を認めるものである。例えば、ユーザが「20歳から24歳」という分類を定義するとき、「20歳から24歳」という節点の子として「20歳から22歳」というような節点を構成することを認める。また、ユーザが「20歳から24歳」の親として、全属性値を包含する「*」を定義していた場合、「20歳から24歳」の親として「20歳から29歳」という節点を新たに追加することを認める。ユーザ定義階層木に外れない形での階層の追加を認めることにより、ユーザが望む分類を活かしつつ、より詳細な匿名化データを出力することが可能になる。
 以下、実施例3を説明する場合、上述の実施例1と重複する構成に対しては同じ符号を付与して説明を省略する。また、実施例3の動作の一部は実施例1と同様である。この部分の動作に対しては、同じ符号を付与して説明を省略する。
 まず、図17を参照し、実施例3の計算機100の構成例を説明する。
 図17において、計算機100のストレージ103は、個人情報テーブル131、匿名情報テーブル132、最小同値件数情報133、属性種別情報134、一般化階層木テーブル135、プログラム1731、ユーザ定義階層木テーブル1732を記憶する。
 CPU101は、メモリ102上にプログラム1731をロードし、ユーザ定義階層木に基づく一般化階層木自動生成部1721と再符号化部122を実現する。なお、再符号化部122は必要に応じて内部処理として損失情報量計量部123を実現する。
 ユーザ定義階層木テーブル1732は、ユーザが任意の属性に対して望む分類を定義したものを格納する。ユーザは匿名化を行う全ての属性に対してユーザ定義階層木を定義する必要はなく、分類を定義したい属性についてのみ定義すればよい。また、前述のとおり、ユーザは各属性において望む分類のみを定義すればよく、全ての階層を定義する必要はない。なお、「文字列処理型」、「順序保存型」、「その他」のどの属性種別においても、祖先と子孫の関係にない複数の節点において各節点の子孫となる属性値が重複するような分類とならないように定義する必要がある。例えば、「25歳から38歳」と「20歳から33歳」のような分類や、「{神奈川県横浜市、神奈川県川崎市}」と「{神奈川県横浜市、神奈川県藤沢市}」のような分類を定義してはならない。
 図18を参照し、ユーザ定義階層木テーブル1732の一例を示す。
 まず、図18(a)を参照して属性「年齢」に対するユーザ定義階層木の概念図を示し、図18(b)を参照してユーザ定義階層木をストレージ上に保存する方法を示し、図18(c)を参照して一般化階層木をメモリ上に管理する方法を示す。
 図18(a)において、属性「年齢」に対するユーザ定義階層木の一例を示す。ユーザ定義階層木は複数の節点と枝から成る木構造として表される。各節点にはユーザが求める分類を表すラベルが関連付けられる。
 図18(b)において、ユーザ定義階層木をストレージ上に保存する方法の一例を示す。ストレージ上にはリレーショナルデータベース等を用いて保存される。リレーショナルデータベース上のテーブルとしてユーザ定義階層木を保存する一例がテーブル1732-bである。テーブルの一行目1811は、各カラムのラベルを示し、2行目以降の各レコードは1つの節点に対応する。
 図18(c)において、ユーザ定義階層木1732-aをメモリ上で管理する方法を示す。データ構造1821は節点1801を管理するデータ構造の一例である。データ構造はポインタ18211と親を指し示すポインタ18212と子のポインタリスト18213と当該節点のラベル18214と頻度情報18215によって構成される。
 次に、図19を参照し、各属性種別におけるユーザ定義階層木の一例と、ユーザ定義階層木に基づく一般化階層木の例を示す。
 図19(a-1)は文字列処理型の属性「住所」のユーザ定義階層木の一例、図19(a-2)は、図5(a-2)で例示したデータを用いて、ユーザ定義階層木に基づく一般化階層木を構成した例である。文字列処理型の属性のユーザ定義階層木としてユーザは文字列から抽出される分類以外の分類を定義することが出来る。例えば、「神奈川県」を「{神奈川県横浜市、神奈川県川崎市}」と、「神奈川県その他」などに細かく分類できる。ここで、「{神奈川県横浜市、神奈川県川崎市}」という節点は、子となる節点のラベルを列挙したものであり、「神奈川県横浜市」と「神奈川県川崎市」を子に持つことが明らかであるので、「神奈川県横浜市」と「神奈川県川崎市」を子として定義しなくともよいが、「神奈川県その他」は子としてどのような節点を持つか明らかでないため、ユーザは「神奈川県その他」の子を定義する必要がある。
 図19(b-1)は順序保存型の属性「年齢」のユーザ定義階層木の一例、図19(b-2)は、図5(b-2)で例示したデータを用いて、ユーザ定義階層木に基づく一般化階層木を構成した例を示す。順序保存型の属性の場合、節点のラベルは値の範囲を示すものとなるため、当該節点に対して子を定義しなくともよい。
 図19(c-1)はその他の属性「国籍」のユーザ定義階層木の一例、図19(c-2)は、図5(c-2)で例示したデータを用いて、ユーザ定義階層木に基づく一般化階層木を構成した例を示す。属性種別が「その他」の属性は、「文字列処理型」の属性と同様、各節点のラベルが子の節点を列挙する形のものである場合は子を定義する必要はないが、「欧州」のような抽象的な名称とする場合には、子としてどのような節点をもつかを定義しなければならない。
 図19(a-2)(b-2)(c-2)において、点線で囲まれた部分は、再符号化の際になくともよい節点を示す。たとえば、頻度が0の節点、つまりユーザ定義階層木において分類区分を指定したものの節点に区分される属性値が個人情報データに存在しない場合、当該節点は再符号化処理には必要ない。そのため、頻度が0となる節点は一般化階層木から削除してもよい。また、節点の頻度が当該節点の子の頻度とかわらないもの、つまり頻度が0以外の子を1つしか持たない節点についても、再符号化処理には必要ない。そのため、頻度が0以外の子を1つしか持たない節点は、一般化階層木から削除し、当該節点の子と当該節点の親とを親子関係にしてもよい。
 次に、図20を参照して、実施例3の計算機100の処理の流れを説明する。
 まず、ユーザ定義階層木に基づく一般化階層木自動生成部1721は、個人情報テーブル131および属性種別情報134ならびにユーザ定義階層木テーブル1732を参照し、一般化階層木の自動生成を行い、その結果を一般化階層木テーブル135に格納する(S2001)。次に再符号化部122がデータの再符号化を行い、その結果を匿名情報テーブル132に格納する(S802)。ステップS802は実施例1のものと等価である。実施例1にて示したS801とS802の関係と同様に、S2001とS802も続けて実行する必要はなく、処理を行うタイミングは別々で構わない。
 次に図21を参照して、ユーザ定義階層木に基づく一般化階層木自動生成部1721が上記S2001で一般化階層木を自動構成する詳細な動作例を説明する。すなわち、図21の各処理を行うのはユーザ定義階層木に基づく一般化階層木自動生成部1721である。
 まず、個人情報テーブル131およびユーザ定義階層木テーブル1732をメモリ102上に読み込む(S2101)。このとき、ユーザ定義階層木で定義された分類に重複がないか確認する。具体的には、ユーザ定義階層木を構成する節点のうち祖先と子孫の関係にない複数の節点において、各節点の子孫が重複しないことをチェックする。重複が存在する場合には、処理を終了する。
 S902およびS903は実施例1のものと等価である。
 S2102でj番目の属性におけるユーザ定義階層木が存在するかどうかを判定する。ユーザ定義階層木が存在しない場合には、S2103、ユーザ定義階層木が存在する場合はS2104に進む。S2103およびS2104の詳細については後述する。S2103またはS2104の処理を終えた後は、S943の処理に移る。
 S943の処理は実施例1のものと等価である。
 図22を参照して、S2103の処理を説明する。S2103は、ユーザ定義階層木を用いず、個人情報テーブルの情報のみを用いて一般化階層木を構成する場合の処理である。つまり、S2103の処理はすべて、実施例1で述べた処理と等価の処理となる。
 次に、図23を参照して、S2104の処理を説明する。
 S904およびS905の処理は前述の通りである。S905で、当該属性の属性種別が「文字列処理型」の場合はS2311、「順序保存型」の場合はS2321、「その他」の場合はS2331へ進む。S2311、S2321、S2331の詳細は後述する。
S2311またはS2321または2331の処理を終えたら、S942に進む。
 S942の処理は前述の通りである。
 図24(a)を参照して、S2311の処理を説明する。
 まず、いくつかの表記法を定義する。yはユーザ定義階層木1732の最も深い階層の階層数である。全ての属性値を包含する「*」を階層0とし、下の階層に行くごとに階層1、階層2、・・・階層yと呼ぶ。
 S911は実施例1のものと等価である。
 S2401では、パラメタxをyに初期化する。
 次に、xが0より小さいかどうかを確認し(S2402)、xが0より小さい場合は処理を終了し、xが0以上の場合にはS2403へ進む。
 S2403では、j番目の属性のユーザ定義階層木を用いて、階層xの節点を全て列挙したリストzを用意する。
 S2404では、リストzが空かどうかを判定する。リストzが空の場合はS2407へ進み、空でない場合は、S2405へ進む。
 S2405では、リストzから節点を一つ選択し、選択した節点をリストzから削除する。
 S2411では、S2405で選択した節点の子孫となる節点を列挙する。具体的には、S2405でユーザ定義階層木1732において子を持たない節点を選択した場合は、S911で取得した属性値情報を用いて当該節点の子孫となる属性値を列挙する。例えば、「神奈川県川崎市」という節点を選択した場合、「神奈川県川崎市」という文字列を含む属性値を列挙する。また、S2405でユーザ定義階層木1732において子を持つ節点を選択した場合は、ユーザ定義階層1732において当該節点の子として定義されている節点を列挙する。例えば、「{神奈川県横浜市、神奈川県川崎市}」という節点を選択した場合、ユーザ定義階層木1732で「{神奈川県横浜市、神奈川県川崎市}」の子として定義されている「神奈川県横浜市」と「神奈川県川崎市」を列挙する。
 S2412では、S2411で列挙した節点から指定された文字列処理を行い、包含関係を抽出し、その包含関係に基づいてS2405で選択した節点を根とする木を構成する。木の構成方法は、実施例1と同様既に知られている様々な文字列処理手法に依る。構成した木はユーザ定義階層木に基づく一般化階層木の一部となる。構成した木を用いて、ユーザ定義階層木を更新する。
 S2406では、S2412で構成した木の頻度情報を更新する。S2406の処理は後述する。S2406の処理を終えたら、前述のS2404の評価に戻る。
 S2407では、xにx-1を代入し、前述のS2402の評価に戻る。
 以上により、属性種別が「文字列処理型」の属性について、ユーザ定義階層に基づいた一般化階層木が構成される。
 図25を参照して、S2406の処理を説明する。S2406の処理の一部は、図10で説明したS941のものと等価である。この部分の動作に対しては、同じ符号を付与して説明を省略する。
 まず、S2501で、頻度情報更新対象の部分木の葉となる節点の頻度情報を取得する。ここで、頻度情報更新対象の部分木とは、S2412で構成した木をさし、部分木の葉となる節点とは、S2411で列挙した全ての節点を指す。
 S2502では、S2501で取得した頻度情報を対応する葉に割り当てる。
 S2503では、頻度情報更新対象の部分木の根、つまりS2414で選択した節点を引数として、図25(b)のルーティンを実行する。
 図25(b)のルーティンは、図10(b)のものと完全に等価である。
 次に図24(b)を参照して、S2321の処理を説明する。S2321の処理の一部はS2311のものと等価である。この部分の動作に対しては、同じ符号を付与して説明を省略する。
 S921、S2401、S2402、S2403、S2404、S2405の処理は前述の通りである。
 S2421では、S2405で選択した節点の子孫となる節点の頻度情報を取得する。具体的には、S2405でユーザ定義階層木1732において子を持たない節点を選択した場合は、S921で取得した属性値情報を用いて当該節点の子孫となる属性値の頻度情報を取得する。また、S2405でユーザ定義階層木1732において子を持つ節点を選択した場合は、ユーザ定義階層1732において当該節点の子として定義されている節点の頻度情報を取得する。例えば、ユーザ定義階層木1732において「20歳から24歳」という節点を選択した場合、属性値が「20歳」、「21歳」、「22歳」、「23歳」、「24歳」の頻度情報を取得する。
 S2422では、S2421で取得した頻度情報を用いて、S2405で選択した節点を根とするHu-Tucker符号木を構成する。構成した木を用いて、ユーザ定義階層木を更新する。
 S2406、S2407の処理は前述の通りである。
 以上により、属性種別が「順序保存型」の属性について、ユーザ定義階層に基づいた一般化階層木が構成される。
 次に図24(c)を参照して、S2331の処理を説明する。S2331の処理の一部はS2311のものと等価である。この部分の動作に対しては、同じ符号を付与して説明を省略する。
 S931、S2401、S2402、S2403、S2404、S2405の処理は前述の通りである。
 S2431では、S2405で選択した節点の子孫となる節点属性値の頻度情報を取得する。具体的には、S2405でユーザ定義階層木1732において子を持たない節点を選択した場合は、S931で取得した属性値情報を用いて当該節点の子孫となる属性値の頻度情報を取得する。また、S2405でユーザ定義階層木1732において子を持つ節点を選択した場合は、ユーザ定義階層1732において当該節点の子として定義されている節点の頻度情報を取得する。例えば、ユーザ定義階層木1732において「欧州」を選択した場合、「英国」、「仏国」、「独国」の頻度情報を取得する。
 S2432では、S2431で取得した頻度情報を用いて、Huffman符号木あるいはShannon-Fano符号木を構成する。実施例1と同様、どちらの符号木を用いるかは、計算機100の設計者があらかじめ決定しておく。構成した木を用いて、ユーザ定義階層木を更新する。
 S2406,S2417の処理は前述の通りである。
 以上により、属性種別が「その他」の属性について、ユーザ定義階層に基づいた一般化階層木が構成される。
 実施例3で構成した計算機100の特長は、ユーザが希望する分類を持つ一部の属性、一部の階層をユーザ定義階層木として定義することで、ユーザが望む分類を考慮した一般化階層木を自動的に生成することである。また、頻度情報を用いて一般化階層木を自動生成することで、損失情報量が少ない形でデータを匿名化することである。
 100:計算機、101:CPU、102:メモリ、121:一般化階層木自動生成部、122:再符号化部、123:損失情報量計量部、103:ストレージ、131:個人情報テーブル、132:匿名情報テーブル、133:最小同値件数情報、134:属性種別情報、135:一般化階層木テーブル、151:プログラム、104:入力装置、105:出力装置、106:通信装置、107:内部通信線、1321:擬似個人情報発生部、1331:プログラム、1332:発生情報テーブル、1721:ユーザ定義階層木に基づく一般化階層木生成部、1731:プログラム、1732:ユーザ定義階層木テーブル。

Claims (19)

  1.  属性毎の属性値からなる個人情報を1件以上格納する個人情報格納手段と、
     属性を1つ選択し、該選択した属性に出現する属性値毎に該属性値を持つ該入力個人情報の件数をカウントする頻度取得手段を用いて、該属性の各々に対して該入力個人情報に出現する各属性値の上位概念をその曖昧度によって木構造で表現する一般化階層木を自動構成する一般化階層木自動生成手段と、
     該一般化階層木自動生成手段を用いて該属性の各々に対して生成された一般化階層木を用いて該入力個人情報を再符号化する手段と、を有する
    ことを特徴とする個人情報匿名化装置。
  2.  請求項1に記載の個人情報匿名化装置であって、
     該再符号化手段が、1件の個人情報の1つの属性値を該自動生成された一般化階層木を用いて曖昧化する際に損失する情報量を計量する損失情報量計量手段を備える
    ことを特徴とする個人情報匿名化装置。
  3.  請求項2に記載の個人情報匿名化装置であって、
     該損失情報量計量手段が、該自動生成された一般化階層木の各節点の出現頻度を、葉であれば該葉に示される属性値が出現する個人情報の件数としてカウントし、内部節点であれば外節点の子孫でありかつ葉である節点の頻度の総和としてカウントする節点頻度取得手段を備え、1件の該入力個人情報の各属性値を該属性値に対応する節点aをその祖先である節点bに曖昧化するときの損失情報量を-log(aの頻度/bの頻度)で計量する
    ことを特徴とする個人情報匿名化装置。
  4.  請求項3に記載の個人情報匿名化装置であって、
     該再符号化手段を用いて生成された各匿名情報の属性値それぞれに対し、該節点頻度取得手段を用いて取得した節点頻度を利用して該属性値が該一般化階層木の節点aであるとき該属性値の子孫である1つ以上の葉に対して、該属性値を該葉cの属性値にcの頻度/aの頻度の確率で置き換えたものを出力する手段を備える
    ことを特徴とする個人情報匿名化装置。
  5.  請求項1または2に記載の個人情報匿名化装置であって、
     該一般化階層木の各節点の出現頻度を、葉であれば該葉に示される属性値が出現する該入力個人情報の件数としてカウントし、内部節点であれば外節点の子孫でかつ葉である節点の頻度の総和としてカウントする節点頻度取得手段を用いて、該再符号化手段を用いて生成された各匿名情報の属性値それぞれに対し、該属性値が該一般化階層木の節点aであるとき該属性値の子孫である1つ以上の葉に対して、該属性値を該葉cの属性値にcの頻度/aの頻度の確率で置き換えたものを出力する手段を備える
    ことを特徴とする個人情報匿名化装置。
  6.  請求項1から5のいずれか一に記載の個人情報匿名化装置であって、
     該一般化階層木自動生成手段が、該頻度取得手段によって取得した頻度を用いて、Huffman符号木を生成することで達成する
    ことを特徴とする個人情報匿名化装置。
  7.  請求項1から5のいずれか一に記載の個人情報匿名化装置であって、
     該一般化階層木自動生成手段が、該頻度取得手段によって取得した頻度を用いてShannon-Fano符号木を生成することで達成する
    ことを特徴とする個人情報匿名化装置
  8.  請求項1から5のいずれか一に記載の個人情報匿名化装置であって、
     該一般化階層木自動生成手段が、該頻度取得手段によって取得した頻度と該属性の属性値に予め定義される順序情報を用いて、Hu-Tucker符号木を生成することで達成する
    ことを特徴とする個人情報匿名化装置。
  9.  請求項1から5のいずれか一に記載の個人情報匿名化装置であって、
     該自動構成した一般化階層木を記憶する手段を有する
    ことを特徴とする個人情報匿名化装置。
  10.  属性毎の属性値からなる1件以上の個人情報と、該属性の各々に対して該1件以上の個人情報に出現する各属性値の上位概念をその曖昧度によって木構造で表現する一般化階層木を入力とし、
     1件の個人情報の1つの属性値を該自動生成された一般化階層木を用いて曖昧化する際に損失する情報量を計量する損失情報量計量手段と、
     該損失情報量計量手段と該一般化階層木を用いて、該入力個人情報の各属性値を該属性値の示す節点の祖先である節点に曖昧化することで該入力個人情報を再符号化する手段と、を有する
    ことを特徴とする個人情報匿名化装置。
  11.  属性の各々に対して属性値の上位概念をその曖昧度によって木構造で表現する一般化階層木を記憶する一般化階層木と、
     該一般化階層木を用いて1件以上の個人情報が匿名化された匿名情報と、
     各属性の属性値毎に該属性値が出現する該個人情報の件数と、を入力とし、
     該一般化階層木の各節点の出現頻度を、葉であれば該葉に示される属性値が出現する該元の個人情報の件数としてカウントし、
     内部節点であれば外節点の子孫でかつ葉である節点の頻度の総和としてカウントする節点頻度取得手段を用いて、
     該入力の各匿名情報の該各属性の属性値それぞれに対し、該属性値が該一般化階層木の節点aであるとき該属性値の子孫である1つ以上の葉に対して、該属性値を該葉cの属性値にcの頻度/aの頻度の確率で置き換えたものを出力する
    ことを特徴とする個人情報匿名化装置。
  12.  請求項1から5および請求項9に記載の個人情報匿名化装置であって、
     属性の一般化階層木の節点の一部を定義したユーザ定義階層木を格納するユーザ定義階層木格納手段と、該ユーザ定義階層木と該頻度取得手段によって取得した頻度とを用いて一般化階層木を自動生成するユーザ定義階層木に基づく一般化階層木自動生成手段を備える
     ことを特徴とする個人情報匿名化装置
  13.  請求項12に記載の個人情報匿名化装置であって、
     該ユーザ定義階層木に基づく一般化階層木自動生成手段が、該ユーザ定義階層木と該頻度取得手段によって取得した頻度を用いて、Huffman符号木を生成することで達成する
     ことを特徴とする個人情報匿名化装置。
  14.  請求項12に記載の個人情報匿名化装置であって、
     該ユーザ定義階層木に基づく一般化階層木自動生成手段が、該ユーザ定義階層木と該頻度取得手段によって取得した頻度を用いてShannon-Fano符号木を生成することで達成する
     ことを特徴とする個人情報匿名化装置
  15.  請求項12に記載の個人情報匿名化装置であって、
     該ユーザ定義階層木に基づく一般化階層木自動生成手段が、該ユーザ定義階層木と該頻度取得手段によって取得した頻度と該属性の属性値に予め定義される順序情報を用いて、Hu-Tucker符号木を生成することで達成する
     ことを特徴とする個人情報匿名化装置。
  16.  請求項12に記載の個人情報匿名化装置であって、
     該ユーザ定義階層木に基づく一般化階層木生成手段は、該ユーザ定義階層木を構成する節点のうち祖先と子孫の関係にない2つ以上の節点において、各節点の子孫が重複しないことをチェックする
     ことを特徴とする個人情報匿名化装置。
  17.  請求項12に記載の個人情報匿名化装置であって、
     該ユーザ定義階層木の節点が、該節点の全ての子のラベルを列挙したラベルを持つ
     ことを特徴とする個人情報匿名化装置。
  18.  請求項12に記載の個人情報匿名化装置であって、
     該ユーザ定義階層木が、子となりうる節点が自明でない抽象的な名称のラベルを持つ節点と、該抽象的な名称のラベルを持つ節点を親とする節点から構成される
     ことを特徴とする個人情報匿名化装置。
  19.  請求項12に記載の個人情報匿名化装置であって、
     該ユーザ定義階層木の節点が、該節点の子孫となる属性値の範囲を表すラベルを持ち、該範囲は該節点と祖先または子孫の関係にない節点の範囲と重複しない
     ことを特徴とする個人情報匿名化装置。
PCT/JP2011/058590 2010-05-19 2011-04-05 個人情報匿名化装置 WO2011145401A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2012515790A JP5492296B2 (ja) 2010-05-19 2011-04-05 個人情報匿名化装置
US13/697,904 US20130138698A1 (en) 2010-05-19 2011-04-05 Identity information de-identification device
DK11783338.4T DK2573699T3 (en) 2010-05-19 2011-04-05 Device for de-identification of identity information
EP11783338.4A EP2573699B1 (en) 2010-05-19 2011-04-05 Identity information de-identification device
CN201180024517.9A CN102893553B (zh) 2010-05-19 2011-04-05 个人信息匿名化装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010114885 2010-05-19
JP2010-114885 2010-05-19

Publications (1)

Publication Number Publication Date
WO2011145401A1 true WO2011145401A1 (ja) 2011-11-24

Family

ID=44991517

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/058590 WO2011145401A1 (ja) 2010-05-19 2011-04-05 個人情報匿名化装置

Country Status (6)

Country Link
US (1) US20130138698A1 (ja)
EP (1) EP2573699B1 (ja)
JP (1) JP5492296B2 (ja)
CN (1) CN102893553B (ja)
DK (1) DK2573699T3 (ja)
WO (1) WO2011145401A1 (ja)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013190838A (ja) * 2012-03-12 2013-09-26 Nippon Telegraph & Telephone West Corp 情報匿名化システム、情報損失判定方法、及び情報損失判定プログラム
JP2013200659A (ja) * 2012-03-23 2013-10-03 Nippon Telegraph & Telephone West Corp 属性選択装置、情報匿名化装置、属性選択方法、情報匿名化方法、属性選択プログラム、及び情報匿名化プログラム
WO2013183250A1 (ja) * 2012-06-04 2013-12-12 日本電気株式会社 匿名化を行う情報処理装置及び匿名化方法
WO2014006851A1 (ja) * 2012-07-02 2014-01-09 日本電気株式会社 匿名化装置、匿名化システム、匿名化方法、及び、プログラム記録媒体
WO2014030302A1 (ja) * 2012-08-20 2014-02-27 日本電気株式会社 匿名化を実行する情報処理装置及び匿名化処理方法
EP2728508A1 (en) * 2012-10-31 2014-05-07 Tata Consultancy Services Limited Dynamic data masking
WO2014136422A1 (ja) * 2013-03-06 2014-09-12 日本電気株式会社 匿名化処理を行う情報処理装置及び匿名化方法
WO2014150250A2 (en) * 2013-03-15 2014-09-25 PathAR, LLC Method and apparatus for substitution scheme for anonymizing personally identifiable information
JP2015046030A (ja) * 2013-08-28 2015-03-12 株式会社日立ソリューションズ パーソナル情報匿名化システム
JP2015049648A (ja) * 2013-08-30 2015-03-16 ニフティ株式会社 匿名化システム
JP2015125646A (ja) * 2013-12-26 2015-07-06 ニフティ株式会社 匿名化システム
JP2016009338A (ja) * 2014-06-24 2016-01-18 株式会社日立ソリューションズ パーソナル情報管理システム及びパーソナル情報匿名化装置
JP2016031567A (ja) * 2014-07-28 2016-03-07 株式会社日立ソリューションズ パーソナル情報匿名化装置
JP2016224772A (ja) * 2015-06-01 2016-12-28 ニフティ株式会社 検出方法、検出装置及び検出プログラム
JP2017041212A (ja) * 2015-08-21 2017-02-23 ニフティ株式会社 匿名処理装置及び匿名処理方法
US9600673B2 (en) 2012-12-27 2017-03-21 Industrial Technology Research Institute Method and device for risk evaluation
WO2017103970A1 (ja) * 2015-12-14 2017-06-22 株式会社日立製作所 データ加工システム及びデータ加工方法
WO2018004236A1 (ko) * 2016-06-30 2018-01-04 주식회사 파수닷컴 개인정보의 비식별화 방법 및 장치
JP2019512128A (ja) * 2016-02-22 2019-05-09 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited データの秘匿性−実用性間のトレードオフを算出するためのシステムおよび方法
WO2020179606A1 (ja) * 2019-03-05 2020-09-10 日本電信電話株式会社 一般化階層集合生成装置、一般化階層集合生成方法、プログラム
JP2021503648A (ja) * 2017-11-17 2021-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ匿名化のためのコンピュータ実施方法、コンピュータ・プログラム製品、およびシステム
US20220300716A1 (en) * 2021-03-18 2022-09-22 Hcl Technologies Limited System and method for designing artificial intelligence (ai) based hierarchical multi-conversation system

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047488B2 (en) * 2013-03-15 2015-06-02 International Business Machines Corporation Anonymizing sensitive identifying information based on relational context across a group
JP2014229039A (ja) 2013-05-22 2014-12-08 株式会社日立製作所 プライバシ保護型データ提供システム
US8978153B1 (en) * 2014-08-01 2015-03-10 Datalogix, Inc. Apparatus and method for data matching and anonymization
US10095883B2 (en) * 2016-07-22 2018-10-09 International Business Machines Corporation Method/system for the online identification and blocking of privacy vulnerabilities in data streams
US10430609B2 (en) * 2016-09-23 2019-10-01 International Business Machines Corporation Low privacy risk and high clarity social media support system
US10762139B1 (en) * 2016-09-29 2020-09-01 EMC IP Holding Company LLC Method and system for managing a document search index
US10628384B2 (en) * 2016-12-09 2020-04-21 Salesforce.Com, Inc. Optimized match keys for fields with prefix structure
JP6828181B2 (ja) * 2017-10-11 2021-02-10 日本電信電話株式会社 k−匿名化装置、方法及びプログラム
US10528761B2 (en) * 2017-10-26 2020-01-07 Sap Se Data anonymization in an in-memory database
FR3077894B1 (fr) 2018-02-13 2021-10-29 Digital & Ethics Procede de traitement automatique pour l’anonymisation d’un jeu de donnees numeriques
US10810324B2 (en) * 2018-04-20 2020-10-20 At&T Intellectual Property I, L.P. Methods, systems and algorithms for providing anonymization
US10715394B2 (en) 2018-10-29 2020-07-14 Sap Portals Israel Ltd. Data aggregation based on a heirarchical tree
WO2020175305A1 (ja) * 2019-02-26 2020-09-03 日本電信電話株式会社 匿名性評価装置、匿名性評価方法、プログラム
WO2020235016A1 (ja) * 2019-05-21 2020-11-26 日本電信電話株式会社 情報処理装置、情報処理方法及びプログラム
US11360990B2 (en) 2019-06-21 2022-06-14 Salesforce.Com, Inc. Method and a system for fuzzy matching of entities in a database system based on machine learning
JP7377664B2 (ja) * 2019-10-01 2023-11-10 株式会社日立製作所 データベース管理システム、および、データベース処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002092367A (ja) * 2000-09-11 2002-03-29 Fujitsu Ltd コンピュータネットワークを使用した問い合わせ方法
JP2007172404A (ja) * 2005-12-22 2007-07-05 Internatl Business Mach Corp <Ibm> 文字列処理方法、装置、およびプログラム
JP2008217425A (ja) * 2007-03-05 2008-09-18 Hitachi Ltd 情報出力装置、情報出力方法、及び、情報出力プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024409B2 (en) * 2002-04-16 2006-04-04 International Business Machines Corporation System and method for transforming data to preserve privacy where the data transform module suppresses the subset of the collection of data according to the privacy constraint
US8200775B2 (en) * 2005-02-01 2012-06-12 Newsilike Media Group, Inc Enhanced syndication
US7365658B2 (en) * 2006-02-28 2008-04-29 The Board Of Trustees Of The University Of Arkansas Method and apparatus for lossless run-length data encoding
US20090006399A1 (en) * 2007-06-29 2009-01-01 International Business Machines Corporation Compression method for relational tables based on combined column and row coding
US20090303237A1 (en) * 2008-06-06 2009-12-10 International Business Machines Corporation Algorithms for identity anonymization on graphs
CN101350033B (zh) * 2008-09-05 2011-10-26 北京邮电大学 一种owl信息到关系数据库的转换方法及装置
CA2679800A1 (en) * 2008-09-22 2010-03-22 University Of Ottawa Re-identification risk in de-identified databases containing personal information
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
US8209342B2 (en) * 2008-10-31 2012-06-26 At&T Intellectual Property I, Lp Systems and associated computer program products that disguise partitioned data structures using transformations having targeted distributions
CA2690788C (en) * 2009-06-25 2018-04-24 University Of Ottawa System and method for optimizing the de-identification of datasets

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002092367A (ja) * 2000-09-11 2002-03-29 Fujitsu Ltd コンピュータネットワークを使用した問い合わせ方法
JP2007172404A (ja) * 2005-12-22 2007-07-05 Internatl Business Mach Corp <Ibm> 文字列処理方法、装置、およびプログラム
JP2008217425A (ja) * 2007-03-05 2008-09-18 Hitachi Ltd 情報出力装置、情報出力方法、及び、情報出力プログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
D. E. KNUTH: "The Art of Computer Programming: Volume 3 Sorting and Searching", vol. 3, 1973, ADDISON-WESLEY, pages: 439 - 444
K. LEFEVRE; D. J. DEWITT; R. RAMAKRISHNAN: "Incognito: Efficient Full-Domain K-Anonymity", 2005 ACM SIGMOD INTERNATIONAL CONF. MANAGEMENT OF DATA, 2005, pages 49 - 60, XP002734215
T. S. HAN; K. KOBAYASHI: "Mathematics of Information and Coding", AMERICAN MATHEMATICAL SOCIETY, 2002, pages 95 - 96
T. S. HAN; K. KOBAYASHI: "Mathematics of Information and Coding", AMERICAN MATHEMATICAL SOCIETY, 2002, pages 99 - 105

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013190838A (ja) * 2012-03-12 2013-09-26 Nippon Telegraph & Telephone West Corp 情報匿名化システム、情報損失判定方法、及び情報損失判定プログラム
JP2013200659A (ja) * 2012-03-23 2013-10-03 Nippon Telegraph & Telephone West Corp 属性選択装置、情報匿名化装置、属性選択方法、情報匿名化方法、属性選択プログラム、及び情報匿名化プログラム
WO2013183250A1 (ja) * 2012-06-04 2013-12-12 日本電気株式会社 匿名化を行う情報処理装置及び匿名化方法
WO2014006851A1 (ja) * 2012-07-02 2014-01-09 日本電気株式会社 匿名化装置、匿名化システム、匿名化方法、及び、プログラム記録媒体
WO2014030302A1 (ja) * 2012-08-20 2014-02-27 日本電気株式会社 匿名化を実行する情報処理装置及び匿名化処理方法
EP2728508A1 (en) * 2012-10-31 2014-05-07 Tata Consultancy Services Limited Dynamic data masking
US9600673B2 (en) 2012-12-27 2017-03-21 Industrial Technology Research Institute Method and device for risk evaluation
WO2014136422A1 (ja) * 2013-03-06 2014-09-12 日本電気株式会社 匿名化処理を行う情報処理装置及び匿名化方法
WO2014150250A3 (en) * 2013-03-15 2014-10-23 PathAR, LLC Method and apparatus for substitution scheme for anonymizing personally identifiable information
WO2014150250A2 (en) * 2013-03-15 2014-09-25 PathAR, LLC Method and apparatus for substitution scheme for anonymizing personally identifiable information
AU2014237406B2 (en) * 2013-03-15 2018-02-15 Babel Street, Inc Method and apparatus for substitution scheme for anonymizing personally identifiable information
JP2015046030A (ja) * 2013-08-28 2015-03-12 株式会社日立ソリューションズ パーソナル情報匿名化システム
JP2015049648A (ja) * 2013-08-30 2015-03-16 ニフティ株式会社 匿名化システム
JP2015125646A (ja) * 2013-12-26 2015-07-06 ニフティ株式会社 匿名化システム
JP2016009338A (ja) * 2014-06-24 2016-01-18 株式会社日立ソリューションズ パーソナル情報管理システム及びパーソナル情報匿名化装置
JP2016031567A (ja) * 2014-07-28 2016-03-07 株式会社日立ソリューションズ パーソナル情報匿名化装置
JP2016224772A (ja) * 2015-06-01 2016-12-28 ニフティ株式会社 検出方法、検出装置及び検出プログラム
JP2017041212A (ja) * 2015-08-21 2017-02-23 ニフティ株式会社 匿名処理装置及び匿名処理方法
US11295635B2 (en) 2015-12-14 2022-04-05 Hitachi, Ltd. Data processing system and data processing method
WO2017103970A1 (ja) * 2015-12-14 2017-06-22 株式会社日立製作所 データ加工システム及びデータ加工方法
JPWO2017103970A1 (ja) * 2015-12-14 2018-08-02 株式会社日立製作所 データ加工システム及びデータ加工方法
JP2019512128A (ja) * 2016-02-22 2019-05-09 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited データの秘匿性−実用性間のトレードオフを算出するためのシステムおよび方法
JP2019527409A (ja) * 2016-06-30 2019-09-26 ファスー ドット コム カンパニー リミテッドFasoo. Com Co., Ltd 個人情報の非識別化方法および装置
WO2018004236A1 (ko) * 2016-06-30 2018-01-04 주식회사 파수닷컴 개인정보의 비식별화 방법 및 장치
US11354436B2 (en) 2016-06-30 2022-06-07 Fasoo.Com Co., Ltd. Method and apparatus for de-identification of personal information
JP7121460B2 (ja) 2017-11-17 2022-08-18 インターナショナル・ビジネス・マシーンズ・コーポレーション データ匿名化のためのコンピュータ実施方法、コンピュータ・プログラム製品、およびシステム
JP2021503648A (ja) * 2017-11-17 2021-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ匿名化のためのコンピュータ実施方法、コンピュータ・プログラム製品、およびシステム
JPWO2020179606A1 (ja) * 2019-03-05 2021-12-09 日本電信電話株式会社 一般化階層集合生成装置、一般化階層集合生成方法、プログラム
WO2020179606A1 (ja) * 2019-03-05 2020-09-10 日本電信電話株式会社 一般化階層集合生成装置、一般化階層集合生成方法、プログラム
JP7425040B2 (ja) 2019-03-05 2024-01-30 日本電信電話株式会社 一般化階層集合生成装置、一般化階層集合生成方法、プログラム
US20220300716A1 (en) * 2021-03-18 2022-09-22 Hcl Technologies Limited System and method for designing artificial intelligence (ai) based hierarchical multi-conversation system
US11875125B2 (en) * 2021-03-18 2024-01-16 Hcl Technologies Limited System and method for designing artificial intelligence (AI) based hierarchical multi-conversation system

Also Published As

Publication number Publication date
EP2573699B1 (en) 2017-06-07
EP2573699A4 (en) 2015-06-03
US20130138698A1 (en) 2013-05-30
JP5492296B2 (ja) 2014-05-14
CN102893553A (zh) 2013-01-23
CN102893553B (zh) 2015-11-25
DK2573699T3 (en) 2017-07-31
EP2573699A1 (en) 2013-03-27
JPWO2011145401A1 (ja) 2013-07-22

Similar Documents

Publication Publication Date Title
JP5492296B2 (ja) 個人情報匿名化装置
US9652467B2 (en) Inline tree data structure for high-speed searching and filtering of large datasets
US7519582B2 (en) System and method for performing a high-level multi-dimensional query on a multi-structural database
US9767127B2 (en) Method for record linkage from multiple sources
Lal Neo4j graph data modeling
US9519636B2 (en) Deduction of analytic context based on text and semantic layer
CN102144227B (zh) 与基于文档类型的文档处理相关的方法及设备
US10579678B2 (en) Dynamic hierarchy generation based on graph data
JP2013080375A (ja) 個人情報匿名化装置及び方法
US20110153611A1 (en) Extracting data from a report document
US9697250B1 (en) Systems and methods for high-speed searching and filtering of large datasets
JP6173848B2 (ja) 文書分類装置
Iglesias-Molina et al. An ontological approach for representing declarative mapping languages
Staar et al. Corpus processing service: a knowledge graph platform to perform deep data exploration on corpora
Bernard et al. Theseus: A framework for managing knowledge graphs about geographical divisions and their evolution
US8423523B2 (en) Apparatus and method for utilizing context to resolve ambiguous queries
JP7423859B2 (ja) データクラスタリング方法及びシステム、データ記憶方法及びシステム並びに記憶媒体
Meyer et al. Integration of data mining results into multi-dimensional data models
US20200342139A1 (en) High-dimensional data anonymization for in- memory applications
Wu et al. Efficient in-memory evaluation of reachability graph pattern queries on data graphs
Huang Visualising category recoding and numeric redistributions
Delanaux Privacy-Preserving Linked Data Integration
US20230195752A1 (en) Virtual foreign keys
Abramowicz et al. Business Information Systems: 22nd International Conference, BIS 2019, Seville, Spain, June 26–28, 2019, Proceedings, Part I
Zhao Schema Profiling for Document Databases: System Development and Case Studies

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180024517.9

Country of ref document: CN

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

Ref document number: 11783338

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012515790

Country of ref document: JP

REEP Request for entry into the european phase

Ref document number: 2011783338

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2011783338

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13697904

Country of ref document: US