WO2014073370A1 - 情報処理装置、情報処理方法及びコンピュータプログラム - Google Patents

情報処理装置、情報処理方法及びコンピュータプログラム Download PDF

Info

Publication number
WO2014073370A1
WO2014073370A1 PCT/JP2013/078594 JP2013078594W WO2014073370A1 WO 2014073370 A1 WO2014073370 A1 WO 2014073370A1 JP 2013078594 W JP2013078594 W JP 2013078594W WO 2014073370 A1 WO2014073370 A1 WO 2014073370A1
Authority
WO
WIPO (PCT)
Prior art keywords
query
result
different
information processing
arbitrary
Prior art date
Application number
PCT/JP2013/078594
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 US14/437,306 priority Critical patent/US10108650B2/en
Publication of WO2014073370A1 publication Critical patent/WO2014073370A1/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/2282Tablespace storage structures; Management thereof
    • 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/24Querying
    • G06F16/242Query formulation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • 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

Definitions

  • the present disclosure relates to an information processing apparatus, an information processing method, and a computer program.
  • Information gathering has become easier with the development of technologies such as the Internet and sensors. Information is actively collected, analyzed, and used in various businesses. In the past, behavioral history analysis was used by banks to determine customer credit. In recent years, analysis of customer purchase histories and the like is used to recommend new products at online sales sites using the Internet. . In addition, a more direct business has been born where personal information of users is collected for trading purposes and a part of the profits is returned to the users.
  • Non-patent Document 1 specifies privacy information of an attack target by performing name identification using common information of the attack target registered in a plurality of databases.
  • Non-Patent Document 2 Such privacy problems have been clearly pointed out since around 2000, and research has been actively conducted, and various prevention technologies have been developed (for example, see Non-Patent Document 2). However, the use of the prevention technology is limited.
  • the present disclosure provides a new and improved information processing apparatus, information processing method, and computer program capable of appropriately measuring the risk of privacy infringement that occurs from data analysis results.
  • a query generation unit that generates one or more different queries based on a database table and an arbitrary query with respect to the table, and a result of the different query generated by the query generation unit includes the query generation unit
  • an information processing apparatus comprising: a table search unit that searches for the number of tables different from the table that is consistent with the result of an arbitrary query.
  • a table of a database and a table providing unit that provides an arbitrary inquiry to the table to another device, and another different inquiry result generated based on the arbitrary inquiry to the table are the arbitrary The result of acquiring information about whether or not individual attribute information is specified from the result of the arbitrary inquiry based on the information of the number of tables different from the table that is consistent with the result of the inquiry from the other device
  • An information processing apparatus including an acquisition unit is provided.
  • a server device and a terminal device are provided, and the terminal device is generated based on a table providing unit that provides the server device with an arbitrary inquiry about a database table, and the arbitrary inquiry about the table. If the result of the arbitrary query is disclosed based on the information of the number of tables different from the table, the result of the different query is consistent with the result of the arbitrary query.
  • a result acquisition unit that acquires information about whether or not information is specified from the server device, wherein the server device is different from the table based on an arbitrary query about the table acquired from the table and the terminal device.
  • a query generator for generating one or more queries, and the query student The number of tables different from the table, in which the result of the different query generated by the section is consistent with the result of the arbitrary query, and the result of the arbitrary query based on the search result is disclosed.
  • an information processing system comprising: a table search unit that provides information about whether or not individual attribute information is not specified from a result of the inquiry to the terminal device.
  • one or more different queries are generated based on a database table and an arbitrary query on the table, and the generated different query results are the results of the arbitrary query.
  • An information processing method comprising: searching for a number of tables different from the table, which is consistent with the table.
  • one or more different queries are generated based on a database table and an arbitrary query on the table, and the generated different query results are the results of the arbitrary query. And a search for a number of tables different from the table that are consistent with each other.
  • FIG. 1 is an explanatory diagram illustrating a configuration example of an information processing system 1 according to an embodiment of the present disclosure.
  • FIG. It is explanatory drawing for the definition of the term in one Embodiment of this indication. It is explanatory drawing for the definition of the term in one Embodiment of this indication. It is explanatory drawing for the definition of the term in one Embodiment of this indication. It is explanatory drawing for the definition of the term in one Embodiment of this indication. It is explanatory drawing for the definition of the term in one Embodiment of this indication. It is explanatory drawing which shows the example of the labeled multiple directed graph used with the algorithm in this embodiment. It is explanatory drawing which shows the characteristic of the attacker in this embodiment.
  • FIG. 4 is an explanatory diagram for describing a loop check algorithm executed by the data analysis apparatus 100 according to an embodiment of the present disclosure.
  • FIG. 4 is an explanatory diagram for describing a loop check algorithm executed by the data analysis apparatus 100 according to an embodiment of the present disclosure.
  • FIG. 5 is a flowchart illustrating an operation example of the entire information processing system according to an embodiment of the present disclosure. 5 is a flowchart illustrating an operation example of the entire information processing system according to an embodiment of the present disclosure. It is explanatory drawing which shows the hardware constitutions of information processing apparatus.
  • Non-patent document 1 has a problem that personal anonymity is lost by name identification using public information, and privacy information is leaked.
  • the medical record of the Governor of Massachusetts can be specified from deanonymization using public information.
  • 87% of people can be identified uniquely from a set of zip code, gender and date of birth.
  • Non-Patent Document 1 increases the granularity of information used for name identification (for example, zipcode: 1410031 ⁇ 141 ***, sex: abstract as male ⁇ human, etc.) and anonymity A method for raising the value has been proposed.
  • an index called k-anonymity is proposed to measure the degree of anonymity. Since this research, research on technology for publishing data while performing privacy protection processing (privacy protection data disclosure) has been actively conducted.
  • Non-Patent Document 2 discloses a state of tackling a privacy problem with respect to a data analysis result, unlike the above-described privacy protection data disclosure. According to Non-Patent Document 2, it may be possible to identify an item that wants to hide the fact that a customer has purchased by the method disclosed in Non-Patent Document 1 from the result of calculating a frequent set of customer purchase histories in a supermarket. It is shown that privacy infringement is possible.
  • the frequent collection of customer purchase histories is a purchase pattern in which the number of purchase pattern persons is equal to or greater than a predetermined threshold. For example, if the threshold is set to 50, if 53 customers are “purchasing eggs and milk” and 53> 50, the purchase pattern “buy eggs and milk” is a frequent set.
  • Non-Patent Document 2 proposes a privacy index called a k-anonymous pattern using an analogy with k-anonymity.
  • the pattern can be interpreted as a group of customers that fit the pattern. Therefore, it is based on the idea that if there are k or more customers in any group, anonymity between customers in each group is ensured.
  • Patent Document 1 discloses a technique called privacy / disturbance method that protects privacy by disturbing data. Patent Document 1 proposes a concept index similar to k-anonymity called Pk-anonymity, reveals the level of confidentiality of data that was not clear by conventional disturbance methods, and makes trade-offs with a simple method. I try to get it accurately.
  • Business intelligence is a method of collecting, organizing, and analyzing data accumulated in a company as it is, and using it for management decision making. In this case, an accurate data analysis result is required for correct decision-making, and the data analysis result may be used as an exchange material for knowledge of other companies as knowledge of the company. Therefore, it is not preferred to distort the original data.
  • the recommendation technique refers to a technique for extracting customer preference information by analyzing customer provided data (for example, customer personal information and purchase data) and recommending an optimal product to the customer based on the result. Even under such a recommendation technique, it is desirable that the analysis result is accurate, so it is desirable to avoid noise if included in the provided data.
  • Non-Patent Document 2 As a research dealing with privacy leakage risk from the analysis result of such data.
  • the technique disclosed in Non-Patent Document 2 guarantees anonymity based on the k-anonymous pattern.
  • further privacy problems are outside the scope of the technology disclosed in Non-Patent Document 2.
  • a privacy infringement attack called a uniformity attack as a problem outside the scope.
  • Uniformity attack refers to the attribute value of Sensitive Attribute that is associated with Quasi-identifier, even if there are k individuals who fall under Quasi-identifier due to k-anonymity, when dealing with personal attribute information called Quasi-identifier and associated Sensitive Attribute. If there is a single line, the Sensitive Attribute value of the individual applicable to the k people is uniquely specified.
  • the embodiment of the present disclosure described below addresses the above problems, and measures the risk of privacy leakage that would be incurred when the data analyst disclosed the analysis results to others. It is related to the technology.
  • FIG. 1 is an explanatory diagram illustrating a configuration example of an information processing system 1 according to an embodiment of the present disclosure.
  • FIG. 1 is an explanatory diagram illustrating a configuration example of an information processing system 1 according to an embodiment of the present disclosure.
  • FIG. 1 is an explanatory diagram illustrating a configuration example of an information processing system 1 according to an embodiment of the present disclosure.
  • FIG. 1 is an explanatory diagram illustrating a configuration example of an information processing system 1 according to an embodiment of the present disclosure.
  • FIG. 1 is an explanatory diagram illustrating a configuration example of an information processing system 1 according to an embodiment of the present disclosure.
  • the information processing system 1 includes a data management device 10, a data utilization device 20, and a data analysis device 100.
  • the data management device 10 is a device that manages data in a database.
  • the data managed by the data management device 10 is not limited to specific data.
  • the data management device 10 may manage information on the purchase history of the customer or may manage information on the patient's medical history.
  • the data management device 10 can provide the managed data to the data utilization device 20, but when providing the data, the data management device 10 does not provide the raw data, but the individual who satisfies the given condition is included in the table. Provide a count of how many people belong. This query that counts how many individuals who satisfy a given condition belong in the table is referred to as “Count query”.
  • the data management apparatus 10 includes a table providing unit 11 and a result acquisition unit 12.
  • the table providing unit 11 provides the data analysis apparatus 100 with an analysis target table and a query (Count query) for the table.
  • the result acquisition unit 12 acquires the analysis result in the data analysis apparatus 100 for the table and query provided by the table providing unit 11.
  • the data use device 20 is a device that uses data provided from the data management device 10. For example, if the data management device 10 manages customer purchase history information, the data utilization device 20 uses the data provided from the data analysis device 100 to analyze sales, recommend products to customers, and the like. Can be executed. In addition, if the data management device 10 manages information on a patient's medical history, the data utilization device 20 can provide information on a disease to a medical institution or the like using data provided from the data analysis device 100. .
  • a user who uses the data use device 20 does not always use good intentional data.
  • a user who uses the data utilization device 20 may analyze the data provided from the data management device 10 and attempt to infringe privacy called Homogeneity Attack. Therefore, the data provided from the data management apparatus 10 to the data utilization apparatus 20 is required to be data that is suitable for use in the data utilization apparatus 20 but does not infringe privacy.
  • the data analysis apparatus 100 is an apparatus that analyzes whether data to be disclosed by the data management apparatus 10 does not infringe privacy. As shown in FIG. 1, the data analysis device 100 includes a data analysis unit 110 and a result determination unit 120.
  • the data analysis unit 110 performs analysis on the data managed by the data management apparatus 10. Although details of the analysis processing executed by the data analysis unit 110 will be described later, in brief explanation, the data analysis unit 110 is expected to provide a count query result for a table managed by the data management apparatus 10. The information used for measuring the risk of Homogeneity Attack for individuals belonging to the table is generated. Specifically, the data analysis unit 110 generates one or more different queries based on a database table and an arbitrary query on the table. When the data analysis unit 110 generates information used to measure the risk of Homogenity Attack for individuals belonging to the table, the data analysis unit 110 provides the generated information to the result determination unit 120.
  • the result determination unit 120 uses the information generated by the data analysis unit 110 to determine whether or not privacy infringement occurs even if the table managed by the data management apparatus 10 is provided to the outside. Specifically, the result determination unit 120 is provided to the data analysis unit 110 in which the result of another different query generated by the data analysis unit 110 is consistent with the result of any query provided to the data analysis unit 110. By searching for the number of tables different from the table, it is determined whether or not privacy infringement occurs. The result determination unit 120 provides the determination result to the data management apparatus 10.
  • the information processing system 1 has the configuration illustrated in FIG. 1, so that the data managed by the data management device 10 and provided to the data usage device 20 is the data usage device 20.
  • the data analysis apparatus 100 can determine whether or not privacy infringement will occur even if the Homogenity Attack is executed.
  • An item indicating a feature relating to an individual, such as “age” indicated by reference numeral 131, is defined as an attribute (Attribute). Therefore, the attributes of the table 130 shown in FIG. 2 are “customer number”, “customer name”, “sex”, “age”, “region code”, “product code”, and “use amount”. In this embodiment, it is assumed that the attribute takes a discrete value. Further, a specific value of the attribute as indicated by reference numeral 132 is defined as an attribute value (Attribute Value).
  • a collection of attribute values related to individuals as indicated by reference numeral 133 is defined as an entry.
  • the table 130 shown in FIG. 2 includes 10 entries. Each attribute included in the entry is classified into three types of ID, quasi-ID, and sensitive attribute described below.
  • ID is an identifier for identifying an individual as represented by an individual name.
  • customer number and “customer name” indicated by reference numeral 134 correspond to IDs. In the context of privacy protection, this ID is usually concealed or deleted from the database.
  • Sensitive Attribute is an attribute in the table that is considered to be related to the privacy of the individual, or an attribute that is considered to determine the personality of the table.
  • product code and “use amount” correspond to Sensitive Attribute.
  • the attacker tries to know the attribute value (Sensitive Attribute Value) of the Sensitive Attribute related to the attack target in the Homogeneity Attack.
  • QSai-ID in the present embodiment is an attribute other than ID and Sensitive Attribute.
  • “sex”, “age”, and “region code” correspond to the Quasi-ID. It is assumed that the attacker knows the attribute value (Quasi-ID Value) of the attack target Quasi-ID in the Homogeneity Attack and uses that information for the attack.
  • a set of entries is a table.
  • the table is expressed by listing each individual entry as a column vector of attribute values.
  • different expressions are used for the table for convenience of explanation.
  • each matrix element is the number of individuals having the attribute value indicated by the index of the matrix element, and in the present embodiment, the above matrix is defined as a table.
  • the table 140 in FIG. 4 is a table in which the quasi-ID and the Sensitive Attribute are one item for convenience of explanation.
  • the patient name corresponds to ID
  • the disease name corresponds to Sensitive Attribute
  • the age corresponds to Quasi-ID.
  • Patient names are usually hidden from the database or deleted.
  • the disease name is important information in data mining, but it is also information related to patient privacy.
  • the age is an attribute other than ID and Sensitive Attribute, and is personal information but not so important information.
  • the table 140 shown in FIG. 4 is represented by a matrix in which all the quasi-ID value pairs are indexed by rows and all the sensitive attribute value pairs are indexed by columns, and the numerical values of the matrix elements are
  • the table shown in FIG. 5 shows the number of individuals having the attribute values indicated by the matrix element index.
  • Reference numeral 141 indicates a set of possible Quasi-IDs in the table 140, which is Set of quasi-identifiers (QIs).
  • Reference numeral 142 denotes a set of possible Sensitive Attributes in the table 140, which is set of sensitive attributes (SAs).
  • SAs sensitive attributes
  • Reference numeral 143 indicates the number of elements, and reference numeral 143 indicates “the number of patients having a stroke in their thirties”.
  • Count query which is an analysis performed on the table defined in this way, is defined.
  • Count query is one of basic operations for tables, and is widely used for data cross tabulation and correlation rule extraction.
  • the count query is described as “a query that counts how many individuals who satisfy a given condition belong in the table”.
  • the conditions and the counting method are defined in a format corresponding to the table definition in this embodiment.
  • FIG. 6 is an explanatory diagram for defining terms in an embodiment of the present disclosure.
  • the contents of the table shown in FIG. 6 are the same as the contents of the table shown in FIG.
  • a count query condition set is defined as a subset C of a Cartesian product set Q ⁇ S of a set Q of a quasi-ID and a set S of a Sensitive Attribute.
  • a set satisfying the condition of “cold or stroke in teens to thirties” as indicated by reference numeral 144 is one of the count query condition sets.
  • the result of Count query for the table T is defined as CNT C (T), and this CNT C (T) is all the Quasi-ID Value (belonging to the Count query condition set C).
  • q) and a matrix element T q, s of T having a pair of Sensitive Attribute Value (s) as an index. Therefore, the result of Count query for the Count query condition set indicated by reference numeral 144 in FIG. 6 is 1 + 2 3.
  • the vertex set is V
  • the edge set is A
  • the label set is ⁇
  • the multiplicity is m.
  • the set ⁇ V, A, ⁇ , m> is defined as a labeled multi-directed graph.
  • is a set of labels attached to the edge
  • m is a function that gives the number of edges.
  • the multi-directed graph with label is defined as follows.
  • V and ⁇ are finite discrete sets, which are called a vertex set and a label set, respectively.
  • a ⁇ V ⁇ V ⁇ ⁇ is a finite discrete set and is called an edge set.
  • V, v ′, q) ⁇ A means an edge having a vertex v as a start point, a vertex v ′ as an end point, and a label q.
  • m A ⁇ N > 0 is a mapping, which is called multiplicity, and gives the number of edges.
  • FIG. 7 is an explanatory diagram showing an example of a labeled multi-directed graph used in the algorithm in the present embodiment.
  • numbers 1 to 6 each represent a vertex.
  • Each edge is given a label, and a plurality of labels are handled as possible.
  • a certain edge is (5, 1, q)
  • the label notation is omitted in order to avoid the complexity of the symbol notation.
  • the premise knowledge assumed in this embodiment deals with the estimation problem of Sensitive Attribute Value among the privacy problems. Based on “l-diversity: Privacy beyond k-anonymity, ACM Transactions on Knowledge Discovery Data (TKDD) 1, I.D.
  • TKDD Knowledge Discovery Data
  • the attacker knows the following information: 1.
  • the attack target belongs to the table, and the value of the quasi-ID of the attack target is known.
  • 2. I know the information of the Quasi-ID in the table. That is, when each quasi-ID value is fixed, the value obtained by adding the column elements of the table is known for all the Sensitive Attribute Values. 3.
  • FIG. 8 is an explanatory diagram showing the characteristics of the attacker in this embodiment.
  • the reference numeral 151 in FIG. The reference numeral 152 indicates the above-mentioned information 2.
  • the reference numeral 153 indicates the above-mentioned information 3. It corresponds to. That is, the attacker does not know the value of each element of the table, but knows the information as shown in FIG.
  • FIG. 9 is an explanatory diagram showing an example of Homogenity Attack.
  • Reference numeral 154 shows an example of the value of the result of Count query given to the attacker.
  • FIG. 9 shows that the number of elements satisfying the condition “cold or stroke in teens to 30s” is three.
  • FIG. 9 shows a case where the attacker knows that the value of the quasi-ID targeted for attack is a teenager.
  • the above equation (1) means a count query to be checked and its result. That is, there is a problem of privacy leakage from the above formula (1) (also in the meaning of Homogenity Attack).
  • condition 1. Is an equation that should be satisfied by a table established by the attacker based on the query result.
  • Is premise knowledge of the attacker, and these conditions are also equations that the table should satisfy.
  • the remaining prerequisite knowledge of the attacker that is, the fact that the attack target Quasi-ID is known is reflected in the above-mentioned condition “for any q ⁇ Q that satisfies d q ⁇ 0”.
  • the reason for “arbitrary” here is that, from the viewpoint of the data manager, the attack target of the attacker is unknown, so all the individuals in the table are considered.
  • the privacy intent of this embodiment will be described.
  • the purpose of the algorithm in this embodiment is to evaluate the risk of Homogenity Attack. This is equivalent to evaluating how many values of the Sensitive Attribute to be attacked can be narrowed down by inference from the count query result provided in addition to the premise knowledge that the attacker has in advance. In addition to the pre-requisite knowledge that the attacker has in advance, there are a number of tables that are consistent with the results of the provided count query, and there are many tables that do not contradict them. This corresponds to the number of possible Sensitive Attributes that can be attacked.
  • FIG. 6 there are a plurality of tables that are consistent with the result and the premise knowledge of the attacker only by the information on the number of people who are “cold or stroke in their teens to 30s”.
  • FIG. 10 to FIG. 12 are explanatory diagrams showing examples of tables. The table shown in FIG. 6 and the results are obtained only by the premise knowledge of the attacker and the information of the number of people who have “cold or stroke in their teens to 30s”. It is explanatory drawing which shows the table which does not contradict.
  • a table in which the number of “cold or stroke in teens to 30s” is 3 and the number of teenagers is 1 is a table in which a teenage patient has a cold as shown in FIG.
  • An algorithm executed by the data analysis apparatus 100 is an algorithm that performs a risk evaluation of a Homogeneity Attack when a table T, a count query set CF of count queries, and a privacy threshold l are given. It is.
  • the risk evaluation of this Homogenity Attack is whether the number of tables consistent with the attacker's premise knowledge as described above is equal to or greater than a given threshold value 1 (“CF preserve privacy.”) Or not exceeded (“CF violates”). privacy. "). If the number of tables that is consistent with the attacker's premise knowledge is greater than or equal to the given threshold l, it is within the risk range set by the data manager, so the data manager publishes the Count query result. Can be judged as good.
  • FIG. 13 is an explanatory diagram illustrating an outline of an algorithm executed by the data analysis apparatus 100 according to an embodiment of the present disclosure.
  • the graph generation algorithm generates a new condition set collection CF ′ from the count query condition set collection CF and a part of the attacker's premise knowledge, and derives from the new condition set collection CF ′ and the table T.
  • This is an algorithm for generating a graph G to be processed.
  • the reason for generating a new set of condition sets CF ′ is that, for an arbitrary CF, in general, the problem of checking the privacy in this embodiment is a search problem of a non-negative integer solution of a 0/1 coefficient linear equation system. This is because it is generally known to be difficult.
  • A is an m ⁇ n matrix, and A ij ⁇ ⁇ 0, 1 ⁇ .
  • b is an n-dimensional vector, b i is a non-negative integer.
  • the loop check algorithm is an algorithm that evaluates the number of loops starting from each vertex with respect to the directed graph G generated by the graph generation algorithm and compares it with a threshold value l. This comparison corresponds to the risk assessment of the Homogenity Attack.
  • the graph generation algorithm is executed by the data analysis unit 110 of the data analysis apparatus 100, and the loop check algorithm is executed by the result determination unit 120.
  • FIG. 14 is an explanatory diagram illustrating an example of a graph generation algorithm executed by the data analysis apparatus 100 according to an embodiment of the present disclosure.
  • 15 to 29 are explanatory diagrams for explaining a graph generation algorithm executed by the data analysis apparatus 100 according to an embodiment of the present disclosure.
  • the graph generation algorithm shown in FIG. 14 generates a (stricter) count query condition set DC from the table T and the count query condition set CF, and generates a graph derived from the tables T and DC. Algorithm.
  • the graph generation algorithm shown in FIG. 14 will be described using the table shown in FIG. 15 as an example. Entire table shown in FIG. 15 is a table T, a set of condition sets C 1 and C 2 is a conditional aggregate CF. C 1 is a condition set representing “cold or stroke in teens to 30s”, and C 2 is a set of conditions representing “stroke or infection in their 30s to 50s”.
  • the first line of the graph generation algorithm shown in FIG. 14 is a process for taking into account the portion related to Sensitive attribute (3. Premise knowledge) in the premise knowledge of the attacker. Other premise knowledge is taken into consideration in the structure of the generated graph and the loop check. This process corresponds to rewriting the premise knowledge about the Sensitive attribute to the Count query condition set. This set of condition sets is defined as an initial DC.
  • the DC defined in the first line is sequentially updated by repetition of the graph generation algorithm shown in FIG. 14 with the for sentence from the second line to the 13th line.
  • the operation of this algorithm proceeds as follows.
  • the graph generation algorithm shown in FIG. 14 performs such division by the Count query condition set C on all sets in DC, and updates DC with DC ′ as in the 12th line of the graph generation algorithm. .
  • Algorithm performs similar processing to the conditions set C 2. That is, as shown in FIG. 22, DCs of “Q ⁇ ⁇ stroke” and “Q ⁇ ⁇ infection ⁇ ” are divided into a portion including C 2 and a portion not including C 2 . As a result, a new set of count query condition sets DC as shown in FIG. 23 is obtained. It should be noted that two blocks in the infectious disease column are not separated from the collection DC of the new count query condition set shown in FIG. In other words, it should be noted that this part is a condition set of “infection in teens, 20s or 60s”.
  • a graph derived from the divided condition set and table is generated.
  • the graph is derived from the divided condition set and the table, and is a labeled multiple directed graph as given by the definition shown in FIG.
  • Definition of graph shown in FIG. Means that only an index for a set including entries belonging to the table among the sets in the DC is used as a vertex. In other words, definition 1. 25, when a set D 1 , D 2 , D 3 , D 4 , D 5 , D 6 newly generated by dividing the set D in the DC by the condition set C is given. As shown in FIG. 26, only the index for the set is a vertex.
  • the meaning of the edge in the graph shown in FIG. 24 is that the value of the Sensitive attribute is appropriately rewritten as the value of the Quali-ID of the entry belonging to the Count query condition set and the table corresponding to the start point. This means that it also belongs to the Count query condition set corresponding to the end point. In this example, 1 is given to the multiplicity.
  • a patient who has “cold in teens” exists in the table and is also included in the set D 1 corresponding to the vertex 1.
  • an edge from the vertex 1 to the vertex 2 is added as shown in FIG.
  • FIG. 30 is an explanatory diagram illustrating an example of a loop check algorithm executed by the data analysis device 100 according to an embodiment of the present disclosure.
  • FIGS. 31 and 32 are explanatory diagrams for describing a loop check algorithm executed by the data analysis apparatus 100 according to an embodiment of the present disclosure. The loop check algorithm will be described with reference to the directed directed graph shown in FIG.
  • the loop check algorithm shown in FIG. 30 fixes one Quasi-ID and one vertex in the first and second lines. For example, in the labeled directed graph shown in FIG. 29, it is assumed that Quasi-ID “10” and vertex 1 are selected and fixed. Next, in the third to sixth lines, the loop check algorithm selects an edge starting from a fixed vertex and performs counting when there is a path that returns from the end point of the edge to the fixed vertex.
  • the loop check algorithm stops the operation because the privacy is broken. Otherwise, the loop check algorithm selects another vertex and counts similarly. It should be noted that the loop check algorithm shown in FIG. 30 assumes that when the counted value c becomes equal to or greater than the given threshold value l, the privacy of the individual corresponding to the current Quasi-ID is maintained. The For statement in the 4th to 6th lines indicated by the algorithm may be omitted.
  • the existence of a loop starting from the starting point means that there is another table in which the value of the Sensitive attribute that stores the constraint condition by the Count query condition set is changed as shown in FIG.
  • the number of teenage patients is one, regardless of whether the target teenager's disease is a cold or an infectious disease.
  • FIG. 33 is a flowchart illustrating an operation example of the entire information processing system according to an embodiment of the present disclosure.
  • an operation example of the entire information processing system according to an embodiment of the present disclosure will be described with reference to FIG.
  • the provision of the set CF of condition sets of the table T, the threshold value l, and the count query is performed by, for example, the table providing unit 11.
  • the data analysis apparatus 100 When the data analysis apparatus 100 receives from the data management apparatus 10 the table T, threshold l, and count query condition set CF, the data analysis apparatus 100 confirms whether the count query condition set CF does not break privacy.
  • the above algorithm is executed, and the determination result is returned to the data management apparatus 10 (step S102).
  • the result acquisition unit 12 acquires the determination result sent from the data analysis device 100, for example.
  • the data management apparatus 10 uses the determination result to determine whether the privacy is protected by the Count query result provided from the data management apparatus 10 to the data utilization apparatus 20. (Step S103).
  • step S103 If it is determined in step S103 that the privacy is protected, the data management apparatus 10 counts the result of the count query (c 1 , c 2 ,..., C) by the count query analyzed by the data analysis apparatus 100. m ) is provided to the data utilization device 20 (step S104). On the other hand, if it is determined in step S103 that the privacy is not protected, the data management apparatus 10 does not provide the count query result to the data utilization apparatus 20.
  • the information processing system is configured so that the count query result provided from the data management device 10 to the data using device 20 is a privacy statement. It is possible to determine whether or not it will be an infringement.
  • the data management apparatus 10 transfers the count query condition set all at once to the data analysis apparatus 100 in a batch, but the present disclosure is not limited to such an example. In other words, the data management apparatus 10 may pass count queries to the data analysis apparatus 100 one by one.
  • FIG. 34 is a flowchart illustrating an operation example of the entire information processing system according to an embodiment of the present disclosure.
  • the data management apparatus 10 sends the target table T and the threshold value l to the data analysis apparatus 100.
  • the data analysis apparatus 100 When the data analysis apparatus 100 receives the table T, the threshold value l, and the Count query CNT C1 from the data management apparatus 10, the data analysis apparatus 100 executes the above-described algorithm to check whether the Count query CNT C1 does not break the privacy, The determination result is returned to the data management apparatus 10 (step S113). Subsequently, the data analysis apparatus 100 updates the DC in the 12th line of the graph generation algorithm (step S114).
  • the data management apparatus 10 uses the determination result to determine whether the privacy is protected by the Count query result provided from the data management apparatus 10 to the data utilization apparatus 20. (Step S115).
  • Step S115 if it is determined that the privacy is protected, the data management device 10 provides a Count query results c 1 by Count query CNT C1 analyzed by the data analyzer 100 to the data utilizing apparatus 20 (Step S116). On the other hand the result of the step S115, if it is determined that the privacy can not be protected, the data management apparatus 10 does not perform the provision of Count query results c 1 by Count query CNT C1 to the data utilization device 20.
  • the analysis in the data analysis device 100 and the determination in the data management device 10 are executed for all the count queries (steps S121 to S125).
  • the data analysis apparatus 100 may operate the graph generation algorithm and the loop check algorithm when there is only one count query.
  • the data analysis apparatus 100 generates the DC of the first line of the graph generation algorithm only when checking the first Count query, and the second and subsequent times are the times when “CF preserve privacy” is determined before that, and Use the most recent DC.
  • the graph generation algorithm By executing the graph generation algorithm in this way, the data analysis apparatus 100 can consider the result of Count query that the privacy made in the past is protected.
  • the sequential configuration according to the present embodiment can cope with past count queries by updating a newly generated set of count query condition sets DC. And since the graph generation algorithm of this embodiment copes with the update by dividing the set, the size of the DC should be limited to a finite (about the square of the table size even in the maximum case) even if the addition of Count query is continued. Can do.
  • the table, the count query condition set, and the threshold set are shown as the input to the data analysis apparatus 100.
  • the data analysis apparatus 100 may hold a table that the data management apparatus 10 holds from the beginning.
  • an algorithm executed by the data analysis apparatus 100 may be incorporated in the database server.
  • the input to the data analysis apparatus 100 may be a count query condition set and a threshold value, and the algorithm may be executed together with a table held by the data analysis apparatus 100. Thereby, the trouble of transmitting the table to the data analysis apparatus 100 can be saved.
  • the threshold value is shown as an input passed to the data analysis apparatus 100, but the present disclosure is not limited to such an example.
  • data analysis to the data management apparatus 10 is performed by using the number of loops calculated by the data analysis apparatus 100 by the loop check algorithm as the individual risk value corresponding to each quasi-ID.
  • the output of the apparatus 100 may be used.
  • the number of loops is calculated (fourth line) for each quasi-ID q (first line) and compared with a threshold value (7th line) to infringe privacy. The presence or absence of was judged.
  • the value of the number of loops c is output for each Quasi-ID q without performing the determination based on the threshold value in the seventh row.
  • the number of loops c for the quasi-ID q indicates the type of the value of the Sensitive Attribute that an individual corresponding to the quasi-ID q can take as described above. Therefore, the data management apparatus 10 can evaluate the privacy leakage risk for each individual by the output of the loop number c.
  • the selection of whether the table is input to the data analysis device 100 or the data analysis device 100 is held, and the threshold value is input to the data analysis device 100.
  • the risk value for each quasi-ID is the data analysis device. Needless to say, any combination of the 100 outputs can be selected.
  • this hardware mainly includes a CPU 902, a ROM 904, a RAM 906, a host bus 908, and a bridge 910. Further, this hardware includes an external bus 912, an interface 914, an input unit 916, an output unit 918, a storage unit 920, a drive 922, a connection port 924, and a communication unit 926.
  • the CPU is an abbreviation for Central Processing Unit.
  • the ROM is an abbreviation for Read Only Memory.
  • the RAM is an abbreviation for Random Access Memory.
  • the CPU 902 functions as, for example, an arithmetic processing unit or a control unit, and controls the overall operation or a part of each component based on various programs recorded in the ROM 904, the RAM 906, the storage unit 920, or the removable recording medium 928.
  • the ROM 904 is a means for storing a program read by the CPU 902, data used for calculation, and the like.
  • the RAM 906 temporarily or permanently stores, for example, a program read by the CPU 902 and various parameters that change as appropriate when the program is executed.
  • a host bus 908 capable of high-speed data transmission.
  • the host bus 908 is connected to an external bus 912 having a relatively low data transmission speed via a bridge 910, for example.
  • a bridge 910 for example.
  • the input unit 916 for example, a mouse, a keyboard, a touch panel, a button, a switch, a lever, or the like is used.
  • a remote controller capable of transmitting a control signal using infrared rays or other radio waves may be used.
  • a display device such as a CRT, LCD, PDP, or ELD
  • an audio output device such as a speaker or a headphone, a printer, a mobile phone, or a facsimile, etc.
  • the above CRT is an abbreviation of Cathode Ray Tube.
  • the LCD is an abbreviation for Liquid Crystal Display.
  • the PDP is an abbreviation for Plasma Display Panel.
  • the above ELD is an abbreviation for Electro-Luminescence Display.
  • the storage unit 920 is a device for storing various data.
  • a magnetic storage device such as a hard disk drive (HDD), a semiconductor storage device, an optical storage device, a magneto-optical storage device, or the like is used.
  • HDD hard disk drive
  • the above HDD is an abbreviation for Hard Disk Drive.
  • the drive 922 is a device that reads information recorded on a removable recording medium 928 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, or writes information to the removable recording medium 928.
  • the removable recording medium 928 is, for example, a DVD medium, a Blu-ray medium, an HD DVD medium, various semiconductor storage media, or the like.
  • the removable recording medium 928 may be, for example, an IC card on which a non-contact type IC chip is mounted, an electronic device, or the like.
  • the above IC is an abbreviation for Integrated Circuit.
  • the connection port 924 is a port for connecting an external connection device 930 such as a USB port, an IEEE 1394 port, a SCSI, an RS-232C port, or an optical audio terminal.
  • the external connection device 930 is, for example, a printer, a portable music player, a digital camera, a digital video camera, or an IC recorder.
  • the USB is an abbreviation for Universal Serial Bus.
  • the SCSI is an abbreviation for Small Computer System Interface.
  • the communication unit 926 is a communication device for connecting to the network 932.
  • a wired or wireless LAN for example, a wired or wireless LAN, Bluetooth (registered trademark), or a WUSB communication card, an optical communication router, an ADSL router, or a contact Or a device for non-contact communication.
  • the network 932 connected to the communication unit 926 is configured by a wired or wireless network, such as the Internet, home LAN, infrared communication, visible light communication, broadcast, or satellite communication.
  • the above LAN is an abbreviation for Local Area Network.
  • the WUSB is an abbreviation for Wireless USB.
  • the above ADSL is an abbreviation for Asymmetric Digital Subscriber Line.
  • the data analysis apparatus 100 executes the algorithm including the graph generation algorithm and the loop check algorithm, thereby quantitatively detecting the privacy leakage risk related to the data analysis result. Can be evaluated. By quantitatively evaluating the privacy leakage risk, it becomes possible to consider the trade-off between the appropriate risk and profit related to the disclosure of the analysis results.
  • the data analysis apparatus 100 can execute an algorithm using a collection CF of a count query condition set as an input, or can sequentially execute an algorithm for different count queries.
  • the data analysis apparatus 100 can check whether privacy is protected for each count query by sequentially executing an algorithm for different count queries, and the result of past count queries. In consideration of the above, it is possible to limit the storage area for storing the past Count query results to a finite amount.
  • this technique can also take the following structures.
  • a query generator that generates one or more different queries based on a database table and any query on the table;
  • a table search unit for searching for the number of tables different from the table, wherein the result of the different query generated by the query generation unit is consistent with the result of the arbitrary query;
  • An information processing apparatus comprising: (2) The information processing apparatus according to (1), wherein the inquiry generation unit generates a graph having a loop using the different different inquiry generated from the table and the arbitrary inquiry.
  • the table search unit calculates the number of loops of the graph generated by the query generation unit, so that the result of the different different query generated by the query generation unit is consistent with the result of the arbitrary query,
  • the information processing apparatus according to (2) wherein the number of tables different from the table is searched.
  • the table search unit terminates the search for the predetermined condition when the number of tables that do not contradict the result of the arbitrary query becomes equal to or greater than the predetermined threshold even if the contents of the predetermined condition of the table are changed.
  • the information processing apparatus according to (5).
  • the information processing apparatus according to any one of (1) to (6), wherein the query generation unit generates one or more different different queries based on a query for an arbitrary column in the table.
  • the inquiry generation unit acquires the table from another apparatus.
  • the information processing apparatus according to any one of (1) to (8), wherein the inquiry generation unit acquires an arbitrary inquiry about the table from another apparatus.
  • the table search unit presents the number of tables different from the table to another apparatus.
  • the table search unit executes a search for the different combination of different inquiries.
  • the table search unit executes a search for the different different inquiry for each different different inquiry.
  • a table providing unit for providing a table of the database and an arbitrary inquiry to the table to another device; An individual from the result of the arbitrary query based on information on the number of tables different from the table, wherein the result of another different query generated based on the arbitrary query on the table is consistent with the result of the arbitrary query
  • a result acquisition unit that acquires information on whether or not the attribute information of the device is specified from the other device;
  • An information processing apparatus comprising: (15) A server device and a terminal device; The terminal device A table providing unit that provides an arbitrary inquiry to a table in a database to the server device; Disclose the result of the arbitrary query based on the information of the number of tables different from the table, the result of another different query generated based on the arbitrary query on the table is consistent with the result of the arbitrary query Even if a result acquisition unit that acquires information from the server device whether or not an individual is identified from the result of the inquiry, With The server device A query generator that generates one or more different queries based on an arbitrary query for
  • An information processing system comprising: (16) Generating one or more other different queries based on a table in the database and any query on the table; Searching for a number of tables different from the table in which the result of the different query generated is consistent with the result of the arbitrary query;
  • An information processing method comprising: (17) On the computer, Generating one or more other different queries based on a table in the database and any query on the table; Searching for a number of tables different from the table in which the result of the different query generated is consistent with the result of the arbitrary query;

Landscapes

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

Abstract

【課題】データの解析結果から起こるプライバシ侵害のリスクを適切に測ることが可能な情報処理装置を提供する。 【解決手段】データベースのテーブル及び前記テーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成する問い合わせ生成部と、前記問い合わせ生成部が生成した前記新たな問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索するテーブル探索部と、を備える、情報処理装置が提供される。

Description

情報処理装置、情報処理方法及びコンピュータプログラム
 本開示は、情報処理装置、情報処理方法及びコンピュータプログラムに関する。
 インターネットやセンサ等の技術の発達により、情報の収集は容易になってきている。情報は活発に収集、解析され、様々なビジネスに利用されている。古くは銀行による顧客の与信判定のために行動履歴の解析が用いられ、近年では、インターネットを利用した通信販売サイトにおける、新たな商品を推薦するために、顧客の購買履歴等の解析が用いられる。また、ユーザの個人情報を売買目的で収集し、その収益の一部をユーザに還元するという、より直接的なビジネスも生まれている。
 このように情報の収集が容易になってきている一方、ユーザのプライバシの問題も顕在化してきており、個人情報の漏洩事件や、プライバシ侵害事件が多数発生している。より高度なプライバシ侵害として、複数のデータベースに登録されている攻撃対象の共通情報を利用して名寄せをすることで、その攻撃対象のプライバシ情報を特定するものもある(非特許文献1)。
 このようなプライバシの問題は2000年頃から明確に指摘されるようになり、研究が活発に行われ様々な防止技術が開発されている(例えば非特許文献2参照)。しかし、その防止技術の利用は一部に留まっている。
 法規制の動きも進んできており、プライバシ保護に最も積極的と言われているEUでは、個人情報のビジネス利用に関して利用の事前承諾を求めるオプトインを基本原則とした規制案を提案している。
特開2011-100116号公報
L. Sweeney. k-anonymity: a model for protecting privacy.International Journal on Uncertainty, Fuzziness and Knowledge-based Systems,10(5):557-570, 2002 M. Atzori, F. Bonchi, F. Giannotti, D. Pedreschi. Anonymity PreservingPattern Discovery. The International Journal on Very Large Data Bases, Volume17 Issue 4, July 2008.
 以上のような事情から、個人情報をビジネスに利用する動きと保護する動きの間にはトレードオフが存在する。適切に企業がビジネス利用とプライバシ保護のバランスを取るためには、このトレードオフを正確に計測する技術が必要である.
 そこで本開示は、データの解析結果から起こるプライバシ侵害のリスクを適切に測ることが可能な、新規かつ改良された情報処理装置、情報処理方法及びコンピュータプログラムを提供する。
 本開示によれば、データベースのテーブル及び前記テーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成する問い合わせ生成部と、前記問い合わせ生成部が生成した前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索するテーブル探索部と、を備える、情報処理装置が提供される。
 また本開示によれば、データベースのテーブル及び前記テーブルに対する任意の問い合わせを他の装置に提供するテーブル提供部と、前記テーブルに対する任意の問い合わせに基づいて生成される別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数の情報に基づく、前記任意の問い合わせの結果から個人の属性情報が特定されるか否かの情報を前記他の装置から取得する結果取得部と、を備える、情報処理装置が提供される。
 また本開示によれば、サーバ装置及び端末装置を備え、前記端末装置は、データベースのテーブルに対する任意の問い合わせを前記サーバ装置に提供するテーブル提供部と、前記テーブルに対する任意の問い合わせに基づいて生成される別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数の情報に基づく、前記任意の問い合わせの結果を開示しても該問い合わせの結果から個人の属性情報が特定されないかどうかの情報を前記サーバ装置から取得する結果取得部と、を備え、前記サーバ装置は、前記テーブル及び前記端末装置から取得した前記テーブルに対する任意の問い合わせに基づいて前記別の異なる問い合わせを1つ以上生成する問い合わせ生成部と、前記問い合わせ生成部が生成した前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索し、探索結果に基づく、前記任意の問い合わせの結果を開示しても該問い合わせの結果から個人の属性情報が特定されないかどうかの情報を前記端末装置に提供するテーブル探索部と、を備える、情報処理システムが提供される。
 また本開示によれば、データベースのテーブル及び前記テーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成することと、生成された前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索することと、を備える、情報処理方法が提供される。
 また本開示によれば、データベースのテーブル及び前記テーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成することと、生成された前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索することと、を実行させる、コンピュータプログラムが提供される。
 以上説明したように本開示によれば、データの解析結果から起こるプライバシ侵害のリスクを適切に測ることが可能な、新規かつ改良された情報処理装置、情報処理方法及びコンピュータプログラムを提供することができる。
本開示の一実施形態にかかる情報処理システム1の構成例を示す説明図である。 本開示の一実施形態における用語の定義のための説明図である。 本開示の一実施形態における用語の定義のための説明図である。 本開示の一実施形態における用語の定義のための説明図である。 本開示の一実施形態における用語の定義のための説明図である。 本開示の一実施形態における用語の定義のための説明図である。 本実施形態におけるアルゴリズムで用いられるラベル付き多重有向グラフの例を示す説明図である。 本実施形態における攻撃者の特徴を示す説明図である。 Homogeneity Attackの例を示す説明図である。 テーブルの一例を示す説明図である。 テーブルの一例を示す説明図である。 テーブルの一例を示す説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するアルゴリズムの概要を示す説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムの例を示す説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するループチェックアルゴリズムの例を示す説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するループチェックアルゴリズムを説明するための説明図である。 本開示の一実施形態に係るデータ解析装置100が実行するループチェックアルゴリズムを説明するための説明図である。 本開示の一実施形態に係る情報処理システム全体の動作例を示す流れ図である。 本開示の一実施形態に係る情報処理システム全体の動作例を示す流れ図である。 情報処理装置のハードウェア構成を示す説明図である。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 なお、説明は以下の順序で行うものとする。
 <1.既存技術の説明>
 <2.本開示の一実施形態>
 [システム構成例]
 [用語の定義]
 [プライバシの定義]
 [アルゴリズムの動作]
 <3.ハードウェア構成例>
 <4.まとめ>
 <1.既存技術の説明>
 まず、本開示の好適な実施の形態について詳細に説明する前に、既存技術の説明を行い、続いて既存技術の問題点について説明する。その後に本開示の好適な実施の形態について詳細に説明する。
 データベースの取り扱いや、データ解析時のプライバシを考慮する技術分野は、Privacy-Preserving Data Miningと呼ばれている。この技術分野では、データの収集・整形・解析に至る、データマイニングの一連の流れのうちの各段階におけるプライバシ保護の手法が研究の対象となっている。本開示に関係のある従来の研究として、非特許文献1、2等がある。
 非特許文献1では、公開情報を利用した名寄せにより個人の匿名性が無くなり、プライバシ情報が漏洩することを問題にしている。非特許文献1によると、公開情報を利用した脱匿名化からマサチューセッツ州知事の医療記録が特定可能である。さらに1990年のthe US 1990 census dataによれば87%の人が、郵便番号(zipcode)、性別及び生年月日の組から一意に特定することが可能であることを示している。この問題に対して非特許文献1では、名寄せに利用される情報の粒度を上げて(例えばzipcode:1410031→141****、性別:男→人間等のように抽象化する)、匿名性を上げる手法が提案されている。そして非特許文献1では、この匿名度を測るためk-匿名性と呼ばれる指標が提案されている。この研究以降、プライバシ保護処理を施しつつデータを公開する技術(プライバシ保護データ公開)の研究が活発になされるようになった。
 一方非特許文献2では、上記のプライバシ保護データ公開とは異なり、データの解析結果に対するプライバシ問題に取り組んでいる様子が開示されている。非特許文献2によると、スーパーマーケットの顧客購入履歴の頻出集合を計算した結果から、非特許文献1で開示されている方法で、顧客が購入したという事実を隠したいような品目を特定できる場合があることを例示し、プライバシ侵害が可能であることが示されている。顧客購入履歴の頻出集合とは、購入パターン者数が予め定めた閾値以上の購入パターンのことである。例えば閾値を50人と設定している場合は、「卵と牛乳を購入」した顧客数が53人であったら、53>50であるので、購入パターン「卵と牛乳を購入」は頻出集合である。この問題に対処するため、非特許文献2では、k-匿名性とのアナロジーを用いたk-匿名パターンと呼ばれるプライバシ指標が提案されている。ここでパターンとは、そのパターンに当てはまる顧客のグループであると解釈することができる。従って、どのグループにも顧客がk人以上いれば、各グループ内の顧客同士の匿名性が担保されるというアイデアに基づいている。
 また特許文献1では、維持・撹乱法と呼ばれる、データを撹乱することでプライバシの保護を行う手法が開示されている。特許文献1では、Pk-匿名性というk-匿名性と似た概念の指標が提案されており、従来の撹乱法では明確でなかったデータの秘匿度を明らかにし、簡便な手法でトレードオフを正確に取れるようにしている。
 このような既存技術は、全てデータベース中の個人のプライバシの保護を目的としており、データの有用性とプライバシとのトレードオフを制御する技術の提案となっている。これらの既存技術は、データベース・プライバシと呼ばれる分野に関するもので、データベースの開示が必要とされる場合に特に有効性を発揮する技術である。
 しかしながら,データベースそのものの開示ではなく、データの解析結果の開示が必要とされる場合も存在する。
 まず、ビジネスインテリジェンスと呼ばれる分野を例に説明する。ビジネスインテリジェンスとは、企業に蓄積されたデータを生のままではなく、そのデータの集約・整理・分析を行い、結果を通じて経営上の意思決定に役立てる手法である。この場合、正しい意思決定のために正確なデータ解析結果が要求され、データ解析結果はその企業の知識として、他社の知識との交換材料にされることもあるといった状況が考えられる。従って、元のデータを歪ませることは好まれない。
 また、別の例としてレコメンデーション技術の分野を挙げて説明する。レコメンデーション技術とは、顧客の提供データ(例えば、顧客の個人情報や購買データ)を解析することで顧客の嗜好情報を抽出し、その結果に基づき顧客に最適な商品を推薦する技術を指す。このようなレコメンデーション技術の下でも、解析結果は正確であることが望ましいので、提供データにノイズを含ませることはできれば避けたいところである。
 しかしながら、いずれの例についても、解析結果や推薦結果から、その元になったデータベースに属する個人へのプライバシ侵害のリスクが存在する。ビジネスインテリジェンスの例では解析結果を受け取った他社が、レコメンデーションの例では推薦結果を受けた顧客が、それぞれ潜在的なプライバシ侵害者であり、データベースに属する個人のプライバシ情報を推定しようとする恐れがある。このプライバシ侵害のリスクは、データベースの開示とそれに伴うプライバシの問題を扱っていたデータベース・プライバシとは問題点が異なる。実際、既存の技術はデータの解析結果からのプライバシ漏洩リスクを直接評価することには対応していない。
 このようなデータの解析結果からのプライバシ漏洩リスクを扱った研究としては非特許文献2がある。非特許文献2で開示されている技術は、k-匿名パターンに基づく匿名性を保証する。しかし,それ以上のプライバシの問題は非特許文献2で開示されている技術のスコープ外になっている。実際スコープ外の問題として均一性攻撃と呼ばれるプライバシ侵害攻撃がある。均一性攻撃とは、Quasi-identifierとそれに結びつくSensitive Attributeと呼ばれる個人の属性情報も扱う場合、k-匿名性によってあるQuasi-identifierに当てはまる個人がk人居たとしても、それに結びつくSensitive Attributeの値が一通りの場合、そのk人に当てはまる個人のSensitive Attributeの値は一意に特定されてしまうというものである。
 そこで、以下で説明する本開示の実施の形態は、以上の問題点に対処するものであり、データの解析者が他者に解析結果を開示した場合に負うことになるプライバシ漏洩のリスクを計測する技術に関するものである。
 <2.本開示の一実施形態>
 [システム構成例]
 まず、図面を参照しながら本開示の一実施形態にかかる情報処理システムの構成例を説明する。図1は、本開示の一実施形態にかかる情報処理システム1の構成例を示す説明図である。以下、図1を用いて本開示の一実施形態にかかる情報処理システム1の構成例について説明する。
 図1に示したように、本開示の一実施形態に係る情報処理システム1は、データ管理装置10と、データ利用装置20と、データ解析装置100と、を含んで構成される。
 データ管理装置10は、データをデータベースで管理する装置である。データ管理装置10が管理するデータは特定のものに限られない。例えば、データ管理装置10は、顧客の購買履歴の情報を管理してもよく、患者の病歴の情報を管理してもよい。データ管理装置10は、管理しているデータをデータ利用装置20に提供することができるが、提供の際には生のデータを提供するのではなく、与えられた条件を満たす個人がテーブル中に何人属しているかを数え上げたものを提供する。この、与えられた条件を満たす個人がテーブル中に何人属しているかを数え上げるクエリのことをCount queryと称する。
 図1に示したように、データ管理装置10は、テーブル提供部11と、結果取得部12と、を含んで構成される。テーブル提供部11は、データ解析装置100に対して、解析対象のテーブル及び当該テーブルに対するクエリ(Count query)を提供する。結果取得部12は、テーブル提供部11が提供したテーブル及びクエリに対するデータ解析装置100での解析結果を取得する。
 データ利用装置20は、データ管理装置10から提供されるデータを利用する装置である。例えば、データ管理装置10が顧客の購買履歴の情報を管理していれば、データ利用装置20は、データ解析装置100から提供されるデータを用いて売上の分析や顧客への商品の推薦等を実行することができる。また、データ管理装置10が患者の病歴の情報を管理していれば、データ利用装置20は、データ解析装置100から提供されるデータを用いて病気に関する情報を医療機関等に提供することが出来る。
 しかし、データ利用装置20を利用する利用者は常に善意のデータの利用を行なうとは限らない。データ利用装置20を利用する利用者は、データ管理装置10から提供されるデータを解析して、Homogeneity Attackと呼ばれるプライバシ侵害を試みようとする場合がある。そのため、データ管理装置10からデータ利用装置20へ提供されるデータは、データ利用装置20での利用に適したものでありながらも、プライバシ侵害とならないようなデータであることが求められる。
 データ解析装置100は、データ管理装置10が公開しようとするデータがプライバシ侵害にならないかどうかを解析する装置である。図1に示したように、データ解析装置100は、データ解析部110と、結果判定部120と、を含んで構成される。
 データ解析部110は、データ管理装置10が管理しているデータに対する解析を実行する。データ解析部110が実行する解析処理の詳細については後述するが、簡単に説明すると、データ解析部110は、データ管理装置10が管理しているテーブルに対するCount queryの結果を提供することで予想される、テーブルに属する個人に対するHomogeneity Attackのリスクの計測に用いられる情報を生成する。具体的には、データ解析部110は、データベースのテーブル及びテーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成する。データ解析部110は、テーブルに属する個人に対するHomogeneity Attackのリスクの計測に用いられる情報を生成すると、生成した情報を結果判定部120に提供する。
 結果判定部120は、データ解析部110が生成した情報を用いて、データ管理装置10が管理しているテーブルが外部に提供されてもプライバシ侵害とならないかどうかを判定する。具体的には、結果判定部120は、データ解析部110が生成した別の異なる問い合わせの結果が、データ解析部110に提供された任意の問い合わせの結果と矛盾しない、データ解析部110に提供されたテーブルとは異なるテーブルの数を探索することで、プライバシ侵害とならないかどうかを判定する。結果判定部120は、判定結果をデータ管理装置10に提供する。
 本開示の一実施形態に係る情報処理システム1は、図1に示したような構成を有することで、データ管理装置10が管理し、データ利用装置20に提供されるデータが、データ利用装置20でHomogeneity Attackを実行されたとしてもプライバシ侵害とならないかどうかをデータ解析装置100で判定することができる。
 以上、図1を用いて本開示の一実施形態に係る情報処理システム1の構成例について説明した。次に、本開示の一実施形態に係る情報処理システム1の動作例について説明するが、情報処理システム1の動作例について説明する前に、説明に用いられる用語の定義及び本実施形態におけるプライバシの定義を説明する。
 [用語の定義]
 まず本実施形態の説明に用いられる用語の定義を示す。図2及び図3は、本開示の一実施形態における用語の定義のための説明図である。図2及び図3には、用語の定義の説明に用いられるテーブル130が示されている。
 符号131で示した「年齢」のように、個人に関する特徴を示す項目を属性(Attribute)と定義する。従って、図2に示したテーブル130の属性は「顧客番号」「顧客名」「性別」「年齢」「地域コード」「商品コード」「利用額」である。本実施形態では、属性は離散値を取るものとする。また、符号132で示したような、属性の具体的な値を属性値(Attribute Value)と定義する。
 また符号133で示したような、個人に関する属性値の集まりをエントリ(Entry)と定義する。図2に示したテーブル130には、10個のエントリが含まれている。なお、エントリに含まれる各属性は、以下で説明するID、Quasi-ID、Sensitive Attributeの3種類に分類されている。
 IDは、個人名に代表されるような、個人を識別する識別子である。図3に示したテーブル130では、符号134で示した「顧客番号」及び「顧客名」がIDに該当する。プライバシ保護という文脈では、このIDは通常はデータベースから秘匿されたり、削除されたりするものである。
 Sensitive Attributeは、テーブル中にあって、個人のプライバシに関わると考えられる属性、またはそのテーブルの性格を決定づけられていると考えられる属性である。図3に示したテーブル130では、「商品コード」及び「利用額」がSensitive Attributeに該当する。攻撃者は、Homogeneity Attackにおいて、攻撃対象に関するSensitive Attributeの属性値(Sensitive Attribute Value)を知ろうとする。
 本実施形態におけるQuasi-IDは、IDとSensitive Attribute以外の属性である。図3に示したテーブル130では、「性別」「年齢」及び「地域コード」がQuasi-IDに該当する。攻撃者は、Homogeneity Attackにおいて、攻撃対象のQuasi-IDの属性値(Quasi-ID Value)を知っており、その情報を攻撃に利用するものとする。
 そして、エントリの集合がテーブルである。通常のリレーショナルデータベースでは、図2及び図3のテーブル130のように、テーブルは各個人のエントリを属性値の列ベクトルとしてリスト化したもので表現される。しかし本実施形態では、説明の便宜上、テーブルについて異なる表現を使用する。
 全てのQuasi-ID Valueの組を行のインデックス、全てのSensitive Attribute Valueの組を列のインデックスとするような行列を考える。この場合、各行列要素の数値を、その行列要素のインデックスが示す属性値を持つような個人の人数とし、本実施形態では、以上のような行列をテーブルと定義する。
 図4及び図5は、本開示の一実施形態における用語の定義のための説明図である。図4のテーブル140は、説明の便宜上、Quasi-IDとSensitive Attributeをそれぞれ1項目としたテーブルである。図4のテーブル140では、患者名がID、病名がSensitive Attribute、年代がQuasi-IDにそれぞれ該当する。患者名は通常はデータベースから秘匿されたり、削除されたりする。病名は、データマイニングでは重要な情報ではあるが、患者のプライバシに関わる情報でもある。また年代は、IDとSensitive Attribute以外の属性であり、個人情報ではあるがさほど重要ではない情報である。
 この図4に示したテーブル140を、全てのQuasi-ID Valueの組を行のインデックス、全てのSensitive Attribute Valueの組を列のインデックスとするような行列で表し、各行列要素の数値を、その行列要素のインデックスが示す属性値を持つような個人の人数としたものが、図5に示したテーブルである。符号141は、テーブル140における可能なQuasi-IDの集合を示し、Set of quasi-identifiers(QIs)とする。符号142は、テーブル140における可能なSensitive Attributeの集合を示し、Set of sensitive attributes(SAs)とする。符号143は要素の数を示しており、符号143が示しているのは、「30代で脳卒中である患者の数」である。
 本実施形態におけるテーブルの数学的な定義は以下の通りである。
 (本実施形態におけるテーブルの数学的な定義)
 有離散集合Q、SをそれぞれSet of quasi-identifiers(QIs)及びSet of sensitive attributes(SAs)とする。この場合、要素が非負整数の行列T:=(Tq,sq∈Q、s∈Sを、Q×S上のテーブルと定義する。
 本実施形態では、説明の便宜上、Quasi-IDとSensitive Attributeをそれぞれ1項目として説明するが、本開示は係る例に限定されないことは言うまでもない。
 続いて、このように定義したテーブルに対して行われる解析であるCount queryについて定義する。Count queryは、テーブルに対する基本演算の一つであり、データのクロス集計や相関ルール抽出など、幅広い利用がなされている。
 一般的には、Count queryは「与えられた条件を満たす個人がテーブル中に何人属しているかを数え上げるクエリ」と説明される。ここでは、その条件と数え上げの方法を、本実施形態におけるテーブルの定義に即した形式で定義する。
 図6は、本開示の一実施形態における用語の定義のための説明図である。図6に示したテーブルの内容は図5に示したテーブルの内容と同一である。
 まず、Count query条件集合について定義する。Count query条件集合とは、Quasi-IDの集合Qと、Sensitive Attributeの集合Sとの直積集合Q×Sの部分集合Cであると定義する。図6では、例えば符号144で示すような「10代から30代で風邪又は脳卒中」という条件を満たす集合が、Count query条件集合の一つである。
 Count query条件集合Cが与えられたときに、テーブルTに対するCount queryの結果をCNT(T)とし、このCNT(T)とは、Count query条件集合Cに属する全てのQuasi-ID Value(q)と、Sensitive Attribute Value(s)の組をインデックスとするTの行列要素Tq,sの和を取るものであるとする。従って、図6の符号144で示したCount query条件集合に対するCount queryの結果は、1+2=3となる。
 本実施形態におけるCount queryの数学的な定義は以下の通りである。
 (本実施形態におけるCount queryの数学的な定義)
 Q×S上のテーブルTと、Q×Sの部分集合Cとが与えられたとき、以下の写像をTに対する条件集合CによるCount queryと定義する。
Figure JPOXMLDOC01-appb-M000001
 最後に、本実施形態におけるアルゴリズムで使用することになるグラフについて定義する。
 頂点の集合をV、エッジの集合をA、ラベルの集合をΣ、多重度(Multiplicity)をmとする。この場合、組<V,A,Σ,m>をラベル付き多重有向グラフであると定義する。ここで、Σはエッジに付随するラベルの集合であり、mはエッジの本数を与える関数である。
 ラベル付き多重有向グラフは以下のように定義される。
 (本実施形態におけるラベル付き多重有向グラフの数学的な定義)
 G=<V,A,Σ,m>がラベル付き有向グラフであるとは、以下を満たす場合をいう。
 1.V及びΣは有限離散集合で、それぞれ頂点集合、ラベル集合と呼ばれる。
 2.A⊆V×V×Σは有限離散集合で、エッジ集合と呼ばれる。(v,v’,q)∈Aは、始点を頂点v、終点を頂点v’、ラベルがqであるエッジを意味するものとする。
 3.m:A→N>0は写像であり、多重度(Multiplicity)と呼ばれ、エッジの本数を与える。
 図7は、本実施形態におけるアルゴリズムで用いられるラベル付き多重有向グラフの例を示す説明図である。図7に示したラベル付き多重有向グラフ145において、1~6の数字はそれぞれ頂点を表している。そして各エッジにはラベルが付与されており、ラベルは複数あり得るものとして扱われる。例えば、図7に示したラベル付き多重有向グラフ145において、あるエッジが(5,1,q)ならば、始点が頂点5であり、終点が頂点1であり、ラベルがqであることを確認できる。なお、図7に示したラベル付き多重有向グラフ145は、記号の表記による煩雑さを避けるために、ラベルの表記が省略されている。
 以上、本実施形態の説明に用いられる用語の定義を示した。続いて、本実施形態の説明に用いられるプライバシの定義を示す。
 [プライバシの定義]
 まず、本実施形態における攻撃者の特徴を示す。そのために、本実施形態における攻撃者がどのような前提知識を持っているかについて定義する。攻撃者に対して前提知識を持つことを仮定するのは主に次のような理由からである。通常、誰かのプライバシを侵害しようとする攻撃者は、攻撃対象のことを事前に調べたり、公の機関が公開しているデータを収集したりする可能性が高いからである。
 また本実施形態で仮定する前提知識は、プライバシの問題の中でもSensitive Attribute Valueの推定問題を扱うもので、A. Machanavajjhala等の「l-diversity: Privacy beyond k-anonymity, ACM Transactions on Knowledge Discovery from Data (TKDD), Vol. 1, Issue 1 , Article No. 3, (2007).」に基づいている。
 攻撃者は、以下の情報について既知であるとする。
 1.攻撃対象がテーブルに属しており、かつ攻撃対象のQuasi-IDの値を知っている。
 2.テーブル中のQuasi-IDの情報を知っている。つまり、各Quasi-ID Valueを固定したときに、全てのSensitive Attribute Valueに関してテーブルの列要素を足し合わせた値を知っている。
 3.テーブル中のSensitive Attributeの情報を知っている。つまり、各Sensitive Attribute Valueを固定したときに、全てのQuasi-ID Valueに関してテーブルの行要素を足し合わせた値を知っている。
 図8は、本実施形態における攻撃者の特徴を示す説明図である。図8の符号151が、上記の情報の1.に該当し、符号152が上記の情報の2.に該当し、符号153が上記の情報の3.に該当する。すなわち、攻撃者はテーブルの各要素の値については知らないが、図8に示したような情報については既知である。
 上記の1~3の情報について、1.の仮定は妥当であるとされる。なぜなら、Quasi-IDは習慣的には年齢、住所、電話番号といった属性であり、攻撃者は攻撃対象に対して事前に調査をして、そのような属性を知っていることが多いためである。また上記2.については、公情報等から入手できる可能性があり、また異なる攻撃対象を持つ攻撃者同士が結託して情報を共有する場合が考えられる。また上記3.についても同様に公情報等から入手できるとされている。
 なお、Quasi-IDとSensitive Attributeとの対応関係については、攻撃者は知らないと仮定する。Quasi-IDとSensitive Attributeとの対応関係まで攻撃者が知っているということは、テーブルそのものが攻撃者に知られていることを意味するので、もはやプライバシは全て開示されていることになり、意味がなくなる。
 本実施形態における攻撃者の前提知識の数学的な定義は以下の通りである。
 (本実施形態における攻撃者の前提知識の数学的な定義)
 1.ターゲットがテーブルに属していることと、そのターゲットのQuasi-IDの値を知っている。
 2.テーブルのQuasi-IDの情報(d:=Σs∈Sq,sq∈Q
 3.テーブルのSensitive Attributeの情報(e:=Σq∈Qq,ss∈S
 以上の攻撃者の前提知識の下で、以下のようなプライバシ侵害攻撃を考える。
 このような攻撃者の前提知識の下、攻撃者は、与えられたCount queryの結果の値から、攻撃対象のSensitive Attribute Valueの値を一意に決定しようとする。このような攻撃は上述したようにHomogeneity Attackと呼ばれる。
 図9は、Homogeneity Attackの例を示す説明図である。符号154は、攻撃者に与えられるCount queryの結果の値の例を示したものである。図9では、「10代から30代で風邪又は脳卒中」という条件を満たす要素の数が3であることが示されている。また図9では、攻撃者が、攻撃対象のQuasi-IDの値が10代であることを知っている場合が示されている。
 本実施形態におけるプライバシの数学的な定義は以下の通りである。
 (本実施形態におけるプライバシの数学的な定義)
 Q×S上のテーブルT:=(Tq,sq∈Q、s∈S,およびQ×Sの部分集合列CF=(C,C,・・・,C)が攻撃者に与えられたとする。このとき、
 ((CNTC1、c),(CNTC2、c),・・・(CNTCm、c)) (1)
 がTに対してl-Privacyを侵害しないとは、次が成り立つときに言う。
 まず、以下の条件を満たすテーブルの集合をΤ’とする。
 1.任意のk∈{1,2,・・・,m}に対して、Σ(q,s)∈CkT’q,s=c
 2.任意のq∈Qに対して、Σs∈ST’q,s=d(:=Σs∈Sq,s
 3.任意のs∈Sに対して、Σq∈QT’q,s=e(:=Σq∈Qq,s
 このとき、d≠0を満たす任意のq∈Qに対して、少なくともl通りの異なるs,s,・・・,s∈Sが存在し、各sに対して、T’q,st≠0となるテーブルT’∈Τ’が存在する。
 上記の式(1)は、チェックしたいCount query及びその結果を意味する。つまり、上記の式(1)からのプライバシの漏洩(Homogeneity Attackの意味するところでもある)を問題としている。
 上記のプライバシの数学的な定義における3つの条件について説明する。まず条件1.は、攻撃者がクエリ結果から立式したテーブルが満たすべき方程式である。そして条件2.及び3.は、攻撃者の前提知識であり、これらの条件もテーブルが満たすべき方程式である。また、攻撃者の残りの前提知識、つまり、攻撃対象のQuasi-IDが既知であることは、上の条件における「d≠0を満たす任意のq∈Qに対して」と言う部分に反映されている。ここで「任意の」となっているのは、データ管理者の立場からすると攻撃者の攻撃対象は誰か分からないので、テーブル中のすべての個人を考慮しているためである。
 本実施形態のプライバシの意図を説明する。本実施形態におけるアルゴリズムは、Homogeneity Attackのリスクを評価することが目的である。これは、攻撃者が予め有している前提知識に加え、提供されるCount queryの結果から、攻撃対象のSensitive Attributeの値を推論によって何通りまで絞り込めるかを評価することに相当する。そしてその評価は、攻撃者が予め有している前提知識に加え、提供されるCount queryの結果を拘束条件として、それらと矛盾しないテーブルが何通り存在し、さらにそのような可能なテーブルの中で攻撃対象のSensitive Attributeが何通り取り得るかを調べることに対応する。
 例えば、図6に示したようなテーブルにおいて、「10代から30代で風邪又は脳卒中」の人数の情報だけでは、その結果及び攻撃者の前提知識と矛盾しないテーブルは複数存在する。図10~図12は、テーブルの一例を示す説明図であり、攻撃者の前提知識及び「10代から30代で風邪又は脳卒中」の人数の情報だけでは、図6に示したテーブルと結果が矛盾しないテーブルを示す説明図である。
 「10代から30代で風邪又は脳卒中」の人数が3人であり、かつ10代の人数が1人であるようなテーブルは、図10に示したように10代の患者が風邪であるテーブル、図11に示したように10代の患者が脳卒中であるテーブル、図12に示したように10代の患者が感染症であるテーブルなど、様々なものが存在する。従って、「10代から30代で風邪又は脳卒中」の人数の情報だけでは、10代の患者の病名を一意に特定することは出来ない。本実施形態におけるアルゴリズムは、このような意味で、各患者が何通りのSensitive Attributeを取り得るかによって、プライバシの漏洩リスクを評価するものである。
 以上、本実施形態におけるプライバシの定義を説明した。続いて、続いて、本開示の一実施形態に係るデータ解析装置100が実行するアルゴリズムの動作について説明する。
 [アルゴリズムの動作]
 本開示の一実施形態に係るデータ解析装置100が実行するアルゴリズムは、テーブルTと、Count queryの条件集合の集まりCFと、プライバシ閾値lとが与えられたとき、Homogeneity Attackのリスク評価を行なうアルゴリズムである。このHomogeneity Attackのリスク評価は、上述したような攻撃者の前提知識と矛盾しないテーブルの数が与えられた閾値l以上になるか(“CF preserves privacy.”)、または超えないか(“CF violates privacy.”)を判定することによってなされる。攻撃者の前提知識と矛盾しないテーブルの数が与えられた閾値l以上になるなら、データ管理者が設定したリスクの範囲内にあるということなので、データ管理者は、Count query結果を公開してもいいと判断することが出来る。
 本開示の一実施形態に係るデータ解析装置100が実行するアルゴリズムは、2つのアルゴリズムに分けられる。1つはグラフ生成アルゴリズムであり、もう一つはループチェックアルゴリズムである。また図13は、本開示の一実施形態に係るデータ解析装置100が実行するアルゴリズムの概要を示す説明図である。
 グラフ生成アルゴリズムは、Count queryの条件集合の集まりCF及び攻撃者の前提知識の一部から新たな条件集合の集まりCF’を生成し、その新たな条件集合の集まりCF’とテーブルTとから誘導されるグラフGを生成するアルゴリズムである。ここで新たな条件集合の集まりCF’を生成する理由は、一般に任意のCFに対して、本実施形態におけるプライバシをチェックする問題は0/1係数線形方程式系の非負整数解の探索問題であり、一般には困難であることが知られているからである。上述した、本実施形態におけるプライバシの数学的な定義を形式化すると、線型方程式系Ax=bの非負整数解を探索することに該当する。なおAはm×n行列であり、Aij∈{0,1}である。またbはn次元ベクトルであり、bは非負整数である。
 ループチェックアルゴリズムは、グラフ生成アルゴリズムで生成された有向グラフGに関して、各頂点を始点とするループの数を評価し、閾値lとの比較を行うアルゴリズムである。この比較が、Homogeneity Attackのリスク評価を行なうことと対応している。
 本実施形態では、グラフ生成アルゴリズムはデータ解析装置100のデータ解析部110が実行し、ループチェックアルゴリズムは結果判定部120が実行するものとする。
 (グラフ生成アルゴリズム)
 まずグラフ生成アルゴリズムについて図面も参照しながら詳細に説明する。図14は、本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムの例を示す説明図である。また図15~図29は、本開示の一実施形態に係るデータ解析装置100が実行するグラフ生成アルゴリズムを説明するための説明図である。
 図14に示したグラフ生成アルゴリズムは、テーブルTとCount query 条件集合の集まりCFから、(より厳しい)Count query条件集合の集まりDCを生成し、テーブルTとDCとから誘導されるグラフを生成するアルゴリズムである。この図14に示したグラフ生成アルゴリズムを、図15に示したテーブルを例に説明する。図15に示したテーブル全体がテーブルTであり、条件集合C及びCの組が条件集合CFである。Cは「10代から30代で風邪又は脳卒中」を表し、Cは「30代から50代で脳卒中又は感染症」を表す条件集合である。
 図14に示したグラフ生成アルゴリズムの1行目は、攻撃者の前提知識のうち、Sensitive attributeに関する部分(前提知識の3.)を考慮に入れるための処理である。なお、他の前提知識は、生成されるグラフの構造やループチェックの際に考慮される。この処理は、Sensitive attributeに関する前提知識をCount query条件集合に書き換えることに対応する。この条件集合の集まりを初期のDCとする。
 例えば、「Q×{風邪}」は、図14に示したアルゴリズム1行目の条件を満たす。実際、「風邪」に対して例えば「10代」が存在し、「10代かつ風邪」の患者がテーブルに属する。一方、「Q×{詐病}」は、アルゴリズム1行目の条件を満たさない。実際、「詐病」を持つ患者はテーブル中には存在しない。
 次に、図14に示したグラフ生成アルゴリズムの2行目から13行目までのfor文での繰り返しによって、1行目で規定されたDCを順次更新していく。このアルゴリズムの動作は次のように進行していく。
 まずCount query条件集合Cを一つ選択する。次に、DC中の集合Dを選択し、選択したCとDとの共通部分を評価する。このとき、テーブルに属するあるエントリ(q,s)が共通部分にも含まれる場合は、DとCとの共通部分を一時的にDC’に加える。またDとCとの補集合に関しても同様の確認を行い、テーブルに属するあるエントリ(q,s)が含まれるならばDC’に加える。これらの処理は、DをCによって「分割」していると解釈できる。
 例えば、DCが「Q×{風邪}」であり、Count query条件集合CがCである場合、図14に示したグラフ生成アルゴリズムの5行目に関して、図17に示すように、DCはCに内包されずに共通元を含む。そこで、図14に示したグラフ生成アルゴリズムの6行目に従って、図18に示すように、Cが含まれる部分と含まれない部分とに「Q×{風邪}」のDCを分割する。
 図14に示したグラフ生成アルゴリズムは、このようなCount query条件集合Cによる分割をDC中の全ての集合に対して行い、グラフ生成アルゴリズムの12行目のように、DCをDC’で更新する。
 例えば、DCが「Q×{脳卒中}」であり、Count query条件集合CがCである場合、図14に示したグラフ生成アルゴリズムの5行目に関して、図19に示すように、DCはCに内包されずに共通元を含む。そこで、図14に示したグラフ生成アルゴリズムの6行目に従って、図20に示すように、Cが含まれる部分と含まれない部分とに「Q×{脳卒中}」のDCを分割する。なお、テーブルに属するエントリを含まない部分については、図20に示すように今後の処理において考慮に入れないものとする。
 そして、「Q×{感染症}」、「Q×{糖尿病}」及び「Q×{癌}」については、Cとの共通元は存在しないので、図14に示したグラフ生成アルゴリズムの11行目に従い、図21に示したような条件集合が、新たなCount query条件集合の集まりDCとなる。
 アルゴリズムは、条件集合Cに対しても同様の処理を実行する。すなわち、図22に示したように、Cが含まれる部分と含まれない部分とに「Q×{脳卒中}」及び「Q×{感染症}」のDCを分割する。すると、図23に示したような、新たなCount query条件集合の集まりDCが得られる。なお、図23に示した新たなCount query条件集合の集まりDCの内、感染症の列における2つのブロックは分離されていないことに留意すべきである。つまりこの部分は「10代、20代または60代で感染症」という条件集合であることに留意すべきである。
 最後に、図14に示したグラフ生成アルゴリズムの14行目で、分割された条件集合とテーブルとから誘導されるグラフを生成する。本実施形態では、分割された条件集合とテーブルとから誘導されるグラフとして、図24のような定義で与えられるような、ラベル付き多重有向グラフである。
 図24に示したグラフの定義の1.は、DC中の集合のうちテーブルに属するエントリを含むような集合に対するインデックスだけ頂点にするという意味である。つまり定義の1.は、図25に示したように、DC中の集合Dが条件集合Cによって分割されて新たに生成された集合D、D、D、D、D、Dが与えられると、図26に示したように、集合に対するインデックスだけを頂点とするものである。
 また図24に示したグラフにおけるエッジの意味は、始点に対応するCount query条件集合とテーブルに属するエントリのQuasi-IDの値は、Sensitive attributeの値を適切に書き変えれば。終点に対応するCount query条件集合にも属することを意味している。多重度(Multiplicity)には、この例の場合は全て1が与えられる。
 例えば図27を参照して説明すると、「10代で風邪」の患者はテーブルに存在し、かつ頂点1に対応する集合Dにも含まれる。この場合に、「10代で風邪」の患者を「10代で感染症」に変更した場合、図28に示したように、頂点1から頂点2へのエッジを追加する。
 数学的に示すと、頂点i,jについて、あるq∈Qが存在し、あるs、s’∈Sが存在し、Tq,s≠0、(q,s)∈Dq,s、(q,s)∈Dq,s’が成り立つときに、iからjへのエッジを追加する、ということに相当する。
 図27のように集合D、D、D、D、D、Dに対応する頂点が与えられた場合、生成されるグラフは図29に示したグラフとなる。例えば、図29において、エッジ(2,1,“20”)は1本であるが、図24のMultiplicityの定義に従えば、実際は2本である。
 (ループチェックアルゴリズム)
 このようにグラフ生成アルゴリズムによって生成されたグラフに対するループチェックアルゴリズムについて説明する。図30は、本開示の一実施形態に係るデータ解析装置100が実行するループチェックアルゴリズムの例を示す説明図である。また図31、図32は、本開示の一実施形態に係るデータ解析装置100が実行するループチェックアルゴリズムを説明するための説明図である。またループチェックアルゴリズムについて、図29に示したラベル付き有向グラフも参照して説明する。
 図30に示したループチェックアルゴリズムは、1行目及び2行目で、Quasi-ID及び頂点を1つ固定する。例えば図29に示したラベル付き有向グラフにおいて、Quasi-ID“10”及び頂点1を選択して固定したとする。次にループチェックアルゴリズムは、3行目から6行目で、固定した頂点を始点とするエッジを選び、そのエッジの終点から固定した頂点まで戻るパスが存在するときにカウントを行う。
 例えば図29に示したラベル付き有向グラフにおいて、Quasi-ID“10”及び頂点1を選択して固定し、頂点1を終点に選択した場合は、終点から始点まで戻るパス(自己ループ)が存在する。同様に、Quasi-ID“10”及び頂点1を選択して固定し、頂点2、3、4を終点に選択した場合も、終点から始点まで戻るパスが存在する。従って、Quasi-ID“10”及び頂点1を選択して固定した場合は、ループチェックアルゴリズムの3行目から6行目でカウントされるカウント値は4となる。
 そして、カウントした値が与えられた閾値l未満であったら、ループチェックアルゴリズムは、プライバシが破れているとして動作を停止する。そうでなければ、ループチェックアルゴリズムは別の頂点を選択して同様にカウントを行なう。なお、ループチェックアルゴリズムは、カウントした値cが与えられた閾値l以上となった時点で、その時点のQuasi-IDに対応する個人のプライバシが保たれているとして、図30に示したループチェックのアルゴリズムで示された4行目から6行目のFor文を抜けてもよい。
 このループチェックアルゴリズムの意味について図31及び図32を参照して説明する。ループチェックアルゴリズムの1行目と2行目でQuasi-ID及び頂点を選択し固定することは、その頂点に対応するCount query条件集合と、テーブルに属するエントリのQuasi-IDとを選択したことに相当する。エッジの存在は、図31に示したように、Quasi-IDの値を保存しつつSensitive attributeの値を書き変える操作と対応している。
 従って、始点から出発するループの存在は、図32に示したように、Count query条件集合による拘束条件を保存するようなSensitive attributeの値を変えた別のテーブルが存在することを意味する。
 つまり、図31及び図32に示したように、ターゲットである10代の患者の病気が風邪であっても感染症であっても、10代の患者数は1人であり、風邪の患者数は4人であり、感染症の患者数は2人であるという拘束条件を満たすテーブルが存在することを意味している。
 また、ループチェックアルゴリズムの3行目で頂点jから頂点iへのパスを見つける必要がある。この問題は有向グラフ上2頂点間の経路探索問題として知られる。この問題に関しては効率的に解けることが知られており、例えばBreadth First Searchを利用すればよい(Knuth, Donald E. (1997), The Art Of Computer Programming Vol 1. 3rd ed., Boston: Addison-Wesley等を参照のこと)。
 以上、本開示の一実施形態に係るデータ解析装置100が実行するアルゴリズムについて説明した。次に、本開示の一実施形態に係る情報処理システム全体の動作について説明する。
 図33は、本開示の一実施形態に係る情報処理システム全体の動作例を示す流れ図である。以下、図33を用いて本開示の一実施形態に係る情報処理システム全体の動作例について説明する。
 データ管理装置10からデータ利用装置20へ提供されるCount query結果が、プライバシの侵害とならないかどうかを確認するために、データ管理装置10は、対象のテーブルT、閾値l及びCount queryの条件集合の集まりCF(=CNTC1,CNTC2,・・・,CNTCm)をデータ解析装置100へ渡す(ステップS101)。このテーブルT、閾値l及びCount queryの条件集合の集まりCFの提供は例えばテーブル提供部11が実行する。
 データ解析装置100は、テーブルT、閾値l及びCount queryの条件集合の集まりCFをデータ管理装置10から受け取ると、Count queryの条件集合の集まりCFがプライバシを破らないかどうかを確認するために、上述のアルゴリズムを実行し、その判定結果をデータ管理装置10に返す(ステップS102)。データ解析装置100から送られてくる判定結果は例えば結果取得部12が取得する。
 データ管理装置10は、データ解析装置100から判定結果を受け取ると、その判定結果を用いて、データ管理装置10からデータ利用装置20へ提供されるCount query結果によってプライバシが保護されているかどうかを判断する(ステップS103)。
 上記ステップS103の結果、プライバシが保護されていると判断した場合は、データ管理装置10は、データ解析装置100で解析されたCount queryによるCount query結果(c,c,・・・,c)をデータ利用装置20へ提供する(ステップS104)。一方上記ステップS103の結果、プライバシが保護されないと判断した場合は、データ管理装置10はデータ利用装置20へのCount query結果の提供は行わない。
 このようにデータ管理装置10及びデータ解析装置100が動作することで、本開示の一実施形態に係る情報処理システムは、データ管理装置10からデータ利用装置20へ提供されるCount query結果が、プライバシの侵害とならないかどうかの判断が可能になる。
 なお、上述の説明ではデータ管理装置10は、Count queryの条件集合をバッチ的に全て一度にデータ解析装置100に渡していたが、本開示は係る例に限定されない。つまり、データ管理装置10は、Count queryをデータ解析装置100に一つずつ渡しても良い。
 図34は、本開示の一実施形態に係る情報処理システム全体の動作例を示す流れ図である。データ管理装置10からデータ利用装置20へ提供されるCount query結果が、プライバシの侵害とならないかどうかを確認するために、データ管理装置10は、対象のテーブルT及び閾値lをデータ解析装置100へ渡し(ステップS111)、続いてCount queryの条件集合の集まりCF(=CNTC1,CNTC2,・・・,CNTCm)の内、1つのCount query CNTC1をデータ解析装置100へ渡す(ステップS112)。
 データ解析装置100は、テーブルT、閾値l及びCount query CNTC1をデータ管理装置10から受け取ると、Count query CNTC1がプライバシを破らないかどうかを確認するために、上述のアルゴリズムを実行し、その判定結果をデータ管理装置10に返す(ステップS113)。続いてデータ解析装置100はグラフ生成アルゴリズムの12行目のDCの更新を行なう(ステップS114)。
 データ管理装置10は、データ解析装置100から判定結果を受け取ると、その判定結果を用いて、データ管理装置10からデータ利用装置20へ提供されるCount query結果によってプライバシが保護されているかどうかを判断する(ステップS115)。
 上記ステップS115の結果、プライバシが保護されていると判断した場合は、データ管理装置10は、データ解析装置100で解析されたCount query CNTC1によるCount query結果cをデータ利用装置20へ提供する(ステップS116)。一方上記ステップS115の結果、プライバシが保護されないと判断した場合は、データ管理装置10はデータ利用装置20へのCount query CNTC1によるCount query結果cの提供は行わない。
 このデータ解析装置100での解析及びデータ管理装置10での判断を、全てのCount queryについて実行する(ステップS121~S125)。
 データ解析装置100は、Count queryが一つの場合でグラフ生成アルゴリズム及びループチェックアルゴリズムを動作させればよい。データ解析装置100は、グラフ生成アルゴリズムの1行目のDCの生成は最初のCount queryのチェックときのみ行い、2回目以降は、それより前に“CF preserves privacy”と判定された回で、かつ直近の回のDCを利用する。データ解析装置100は、このようにグラフ生成アルゴリズムを実行することで、過去になされたプライバシが保護されているとされたCount queryの結果を考慮することができる。
 図33に示したように一度に複数のCount queryの条件集合をチェックした場合は、全てのCount queryの結果に対してプライバシが保護されているか、または破れているかをチェックするものであった。一方、図34に示したように逐次的にチェックした場合は、各Count queryの結果に対して保護されているか、または破れているかをチェックできる。
 通常このような逐次的なチェックでは、新しいCount queryが送られてくると、過去に行われたCount queryを考慮する必要があった。これに対して本実施形態における逐次的構成は、先に説明したように、新たに生成したCount queryの条件集合の集まりDCを更新することで、過去のCount queryに対処することができる。そして本実施形態のグラフ生成アルゴリズムは、集合の分割で更新に対処するので、Count queryの追加を続けていってもDCのサイズは有限(最大の場合でもテーブルサイズの2乗程度)で抑えることができる。
 上述の説明では、データ解析装置100に渡される入力として、テーブル、Count queryの条件集合及び閾値の組を示したが、本開示は係る例に限定されない。例えば、上述の説明ではデータ管理装置10が保持しているとしたテーブルを最初からデータ解析装置100が保持していてもよい。言い換えれば、データ解析装置100が実行するアルゴリズムをデータベースサーバに組み込むようにしても良い。すなわち、データ解析装置100への入力をCount queryの条件集合及び閾値としてもよく、データ解析装置100が保持するテーブルと合わせてアルゴリズムを実行しても良い。これにより、データ解析装置100にテーブルを送信する手間を省くことができる。
 また上述の説明では、データ解析装置100に渡される入力として閾値を示したが、本開示は係る例に限定されない。例えば、データ解析装置100に閾値を入力せずに、データ解析装置100がループチェックアルゴリズムで計算したループ数を、各Quasi-IDに対応する個々人のリスク値として、データ管理装置10へのデータ解析装置100の出力としてもよい。
 図30に示したループチェックアルゴリズムを参照しながら説明する。図30に示したループチェックアルゴリズムでは、各Quasi-ID q(1行目)に対してループの数を計算(4行目)し、閾値との比較(7行目)をしてプライバシの侵害の有無を判定していた。ここで、この7行目の閾値による判定を行わずに、Quasi-ID q毎にループ数cの値を出力するようにする。
 Quasi-ID qに対するループ数cは、上述の説明の通りQuasi-ID qに対応する個人がとり得るSensitive Attributeの値の種類を示すものである。よってループ数cの出力によって、データ管理装置10は各個人に対するプライバシ漏えいリスクを評価することが可能になる。
 当然、テーブルをデータ解析装置100への入力とするか、データ解析装置100に保持させるかの選択と、閾値をデータ解析装置100への入力とするか各Quasi-IDに対するリスク値をデータ解析装置100の出力とするかの選択に関して、任意の組み合わせが可能であることは言うまでもない。
 <3.ハードウェア構成例>
 上記の各アルゴリズムは、例えば、図35に示す情報処理装置のハードウェア構成を用いて実行することが可能である。つまり、当該各アルゴリズムの処理は、コンピュータプログラムを用いて図35に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、接触式又は非接触式のICチップ、接触式又は非接触式のICカード、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、Personal Handy-phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
 図35に示すように、このハードウェアは、主に、CPU902と、ROM904と、RAM906と、ホストバス908と、ブリッジ910と、を有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926と、を有する。但し、上記のCPUは、Central Processing Unitの略である。また、上記のROMは、Read Only Memoryの略である。そして、上記のRAMは、Random Access Memoryの略である。
 CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
 これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ(以下、リモコン)が用いられることもある。
 出力部918としては、例えば、CRT、LCD、PDP、又はELD等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のCRTは、Cathode Ray Tubeの略である。また、上記のLCDは、Liquid Crystal Displayの略である。そして、上記のPDPは、Plasma DisplayPanelの略である。さらに、上記のELDは、Electro-Luminescence Displayの略である。
 記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、ハードディスクドライブ(HDD)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のHDDは、Hard Disk Driveの略である。
 ドライブ922は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928は、例えば、DVDメディア、Blu-rayメディア、HD DVDメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体928は、例えば、非接触型ICチップを搭載したICカード、又は電子機器等であってもよい。但し、上記のICは、Integrated Circuitの略である。
 接続ポート924は、例えば、USBポート、IEEE1394ポート、SCSI、RS-232Cポート、又は光オーディオ端子等のような外部接続機器930を接続するためのポートである。外部接続機器930は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。但し、上記のUSBは、Universal Serial Busの略である。また、上記のSCSIは、Small Computer System Interfaceの略である。
 通信部926は、ネットワーク932に接続するための通信デバイスであり、例えば、有線又は無線LAN、Bluetooth(登録商標)、又はWUSB用の通信カード、光通信用のルータ、ADSL用のルータ、又は接触又は非接触通信用のデバイス等である。また、通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内LAN、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のLANは、Local Area Networkの略である。また、上記のWUSBは、Wireless USBの略である。そして、上記のADSLは、Asymmetric Digital Subscriber Lineの略である。
 <4.まとめ>
 以上説明した様に本開示の一実施形態によれば、データ解析装置100がグラフ生成アルゴリズム及びループチェックアルゴリズムからなるアルゴリズムを実行することで、データ解析の結果に係るプライバシの漏洩リスクを定量的に評価することが出来る。プライバシの漏洩リスクを定量的に評価することで、解析結果の公開にかかる適切なリスクと利益とのトレードオフを考慮することが出来るようになる。
 またデータ解析装置100は、Count queryの条件集合の集まりCFを入力としてアルゴリズムを実行することもできるし、異なるCount queryに対して逐次的にアルゴリズムを実行することもできる。データ解析装置100は、異なるCount queryに対して逐次的にアルゴリズムを実行することで、一つ一つのCount queryに対してプライバシが保護されているか否かをチェック出来るとともに、過去のCount queryの結果を考慮しつつ、過去のCount queryの結果を記憶するための記憶領域を有限に抑えることが出来る。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 なお、本技術は以下のような構成も取ることができる。
(1)
 データベースのテーブル及び前記テーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成する問い合わせ生成部と、
 前記問い合わせ生成部が生成した前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索するテーブル探索部と、
を備える、情報処理装置。
(2)
 前記問い合わせ生成部は、前記テーブル及び前記任意の問い合わせから生成した前記別の異なる問い合わせを用いてループを有するグラフを生成する、前記(1)に記載の情報処理装置。
(3)
 前記テーブル探索部は、前記問い合わせ生成部が生成した前記グラフのループ数を算出することで、前記問い合わせ生成部が生成した前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索する、前記(2)に記載の情報処理装置。
(4)
 前記グラフは、ラベル付き多重有向グラフである、前記(2)または(3)に記載の情報処理装置。
(5)
 前記テーブル探索部は、前記テーブルとは異なるテーブルの数と所定の閾値とを比較した結果を出力する、前記(1)~(4)のいずれかに記載の情報処理装置。
(6)
 前記テーブル探索部は、前記テーブルの所定の条件についての内容を変えても前記任意の問い合わせの結果と矛盾しないテーブルの数が前記所定の閾値以上になった時点で前記所定の条件に対する探索を終了する、前記(5)に記載の情報処理装置。
(7)
 前記問い合わせ生成部は、前記テーブルにおける任意の列に対する問い合わせに基づいて前記別の異なる問い合わせを1つ以上生成する、前記(1)~(6)のいずれかに記載の情報処理装置。
(8)
 前記問い合わせ生成部は、前記テーブルを他の装置から取得する、前記(1)~(7)のいずれかに記載の情報処理装置。
(9)
 前記テーブルを保持するテーブル保持部をさらに備える、前記(1)~(8)のいずれかに記載の情報処理装置。
(10)
 前記問い合わせ生成部は、前記テーブルに対する任意の問い合わせを他の装置から取得する、前記(1)~(8)のいずれかに記載の情報処理装置。
(11)
 前記テーブル探索部は、前記テーブルとは異なるテーブルの数を他の装置に提示する、前記(1)~(10)のいずれかに記載の情報処理装置。
(12)
 前記テーブル探索部は、前記別の異なる問い合わせの組み合わせに対する探索を実行する、前記(1)~(11)のいずれかに記載の情報処理装置。
(13)
 前記テーブル探索部は、前記別の異なる問い合わせに対する探索を前記別の異なる問い合わせ毎に実行する、前記(1)~(12)のいずれかに記載の情報処理装置。
(14)
 データベースのテーブル及び前記テーブルに対する任意の問い合わせを他の装置に提供するテーブル提供部と、
 前記テーブルに対する任意の問い合わせに基づいて生成される別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数の情報に基づく、前記任意の問い合わせの結果から個人の属性情報が特定されるか否かの情報を前記他の装置から取得する結果取得部と、
を備える、情報処理装置。
(15)
 サーバ装置及び端末装置を備え、
 前記端末装置は、
 データベースのテーブルに対する任意の問い合わせを前記サーバ装置に提供するテーブル提供部と、
 前記テーブルに対する任意の問い合わせに基づいて生成される別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数の情報に基づく、前記任意の問い合わせの結果を開示しても該問い合わせの結果から個人が特定されないかどうかの情報を前記サーバ装置から取得する結果取得部と、
を備え、
 前記サーバ装置は、
 前記テーブル及び前記端末装置から取得した前記テーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成する問い合わせ生成部と、
 前記問い合わせ生成部が生成した前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索し、探索結果に基づく、前記任意の問い合わせの結果を開示しても該問い合わせの結果から個人が特定されないかどうかの情報を前記端末装置に提供するテーブル探索部と、
を備える、情報処理システム。
(16)
 データベースのテーブル及び前記テーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成することと、
 生成された前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索することと、
を備える、情報処理方法。
(17)
 コンピュータに、
 データベースのテーブル及び前記テーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成することと、
 生成された前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索することと、
を実行させる、コンピュータプログラム。
 1  情報処理システム
 10  データ管理装置
 11  テーブル提供部
 12  結果取得部
 20  データ利用装置
 100  データ解析装置
 110  データ解析部
 120  結果判定部

Claims (17)

  1.  データベースのテーブル及び前記テーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成する問い合わせ生成部と、
     前記問い合わせ生成部が生成した前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索するテーブル探索部と、
    を備える、情報処理装置。
  2.  前記問い合わせ生成部は、前記テーブル及び前記任意の問い合わせから生成した前記別の異なる問い合わせを用いてループを有するグラフを生成する、請求項1に記載の情報処理装置。
  3.  前記テーブル探索部は、前記問い合わせ生成部が生成した前記グラフのループ数を算出することで、前記問い合わせ生成部が生成した前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索する、請求項2に記載の情報処理装置。
  4.  前記グラフは、ラベル付き多重有向グラフである、請求項2に記載の情報処理装置。
  5.  前記テーブル探索部は、前記テーブルとは異なるテーブルの数と所定の閾値とを比較した結果を出力する、請求項1に記載の情報処理装置。
  6.  前記テーブル探索部は、前記テーブルの所定の条件についての内容を変えても前記任意の問い合わせの結果と矛盾しないテーブルの数が前記所定の閾値以上になった時点で前記所定の条件に対する探索を終了する、請求項5に記載の情報処理装置。
  7.  前記問い合わせ生成部は、前記テーブルにおける任意の列に対する問い合わせに基づいて前記別の異なる問い合わせを1つ以上生成する、請求項1に記載の情報処理装置。
  8.  前記問い合わせ生成部は、前記テーブルを他の装置から取得する、請求項1に記載の情報処理装置。
  9.  前記テーブルを保持するテーブル保持部をさらに備える、請求項1に記載の情報処理装置。
  10.  前記問い合わせ生成部は、前記テーブルに対する任意の問い合わせを他の装置から取得する、請求項1に記載の情報処理装置。
  11.  前記テーブル探索部は、前記テーブルとは異なるテーブルの数を他の装置に提示する、請求項1に記載の情報処理装置。
  12.  前記テーブル探索部は、前記別の異なる問い合わせの組み合わせに対する探索を実行する、請求項1に記載の情報処理装置。
  13.  前記テーブル探索部は、前記別の異なる問い合わせに対する探索を前記別の異なる問い合わせ毎に実行する、請求項1に記載の情報処理装置。
  14.  データベースのテーブル及び前記テーブルに対する任意の問い合わせを他の装置に提供するテーブル提供部と、
     前記テーブルに対する任意の問い合わせに基づいて生成される別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数の情報に基づく、前記任意の問い合わせの結果から個人の属性情報が特定されるか否かの情報を前記他の装置から取得する結果取得部と、
    を備える、情報処理装置。
  15.  サーバ装置及び端末装置を備え、
     前記端末装置は、
     データベースのテーブルに対する任意の問い合わせを前記サーバ装置に提供するテーブル提供部と、
     前記テーブルに対する任意の問い合わせに基づいて生成される別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数の情報に基づく、前記任意の問い合わせの結果を開示すると該問い合わせの結果から個人が特定されるかどうかの情報を前記サーバ装置から取得する結果取得部と、
    を備え、
     前記サーバ装置は、
     前記テーブル及び前記端末装置から取得した前記テーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成する問い合わせ生成部と、
     前記問い合わせ生成部が生成した前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索し、探索結果に基づく、前記任意の問い合わせの結果を開示すると該問い合わせの結果から個人が特定されるかどうかの情報を前記端末装置に提供するテーブル探索部と、
    を備える、情報処理システム。
  16.  データベースのテーブル及び前記テーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成することと、
     生成された前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索することと、
    を備える、情報処理方法。
  17.  コンピュータに、
     データベースのテーブル及び前記テーブルに対する任意の問い合わせに基づいて別の異なる問い合わせを1つ以上生成することと、
     生成された前記別の異なる問い合わせの結果が前記任意の問い合わせの結果と矛盾しない、前記テーブルとは異なるテーブルの数を探索することと、
    を実行させる、コンピュータプログラム。
PCT/JP2013/078594 2012-11-12 2013-10-22 情報処理装置、情報処理方法及びコンピュータプログラム WO2014073370A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/437,306 US10108650B2 (en) 2012-11-12 2013-10-22 Information processing device and information processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012248052 2012-11-12
JP2012-248052 2012-11-12

Publications (1)

Publication Number Publication Date
WO2014073370A1 true WO2014073370A1 (ja) 2014-05-15

Family

ID=50684482

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/078594 WO2014073370A1 (ja) 2012-11-12 2013-10-22 情報処理装置、情報処理方法及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US10108650B2 (ja)
WO (1) WO2014073370A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017204277A (ja) * 2016-05-10 2017-11-16 エアクローク ゲーエムベーハーAircloak GmbH 匿名型統計データベースのクエリのためのシステムおよび方法
US11194823B2 (en) 2016-05-10 2021-12-07 Aircloak Gmbh Systems and methods for anonymized statistical database queries using noise elements

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012090628A1 (ja) * 2010-12-27 2012-07-05 日本電気株式会社 情報保護装置及び情報保護方法
WO2012093522A1 (ja) * 2011-01-05 2012-07-12 日本電気株式会社 匿名化装置
JP2012159982A (ja) * 2011-01-31 2012-08-23 Kddi Corp 公開情報のプライバシー保護装置、公開情報のプライバシー保護方法およびプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7177798B2 (en) * 2000-04-07 2007-02-13 Rensselaer Polytechnic Institute Natural language interface using constrained intermediate dictionary of results
US7693720B2 (en) * 2002-07-15 2010-04-06 Voicebox Technologies, Inc. Mobile systems and methods for responding to natural language speech utterance
US7739262B2 (en) * 2004-03-19 2010-06-15 Microsoft Corporation Enforcing currency and consistency constraints in database query processing
US20080077570A1 (en) * 2004-10-25 2008-03-27 Infovell, Inc. Full Text Query and Search Systems and Method of Use
US7363297B2 (en) * 2005-01-20 2008-04-22 International Business Machines Corporation Utilization of logical fields with conditional constraints in abstract queries
US8438141B2 (en) * 2005-01-27 2013-05-07 International Business Machines Corporation System and method for providing secure access to data with user defined table functions
US7668825B2 (en) * 2005-08-26 2010-02-23 Convera Corporation Search system and method
US20100088325A1 (en) * 2008-10-07 2010-04-08 Microsoft Corporation Streaming Queries
US8423523B2 (en) * 2008-11-13 2013-04-16 SAP France S.A. Apparatus and method for utilizing context to resolve ambiguous queries
JP5475610B2 (ja) 2009-10-07 2014-04-16 日本電信電話株式会社 撹乱装置、撹乱方法及びプログラム
US9218394B2 (en) * 2010-10-19 2015-12-22 International Business Machines Corporation Reading rows from memory prior to reading rows from secondary storage
US9064016B2 (en) * 2012-03-14 2015-06-23 Microsoft Corporation Ranking search results using result repetition
US8825633B2 (en) * 2012-05-15 2014-09-02 Sas Institute Inc. System, method, and data structure for automatically generating database queries which are data model independent and cardinality independent

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012090628A1 (ja) * 2010-12-27 2012-07-05 日本電気株式会社 情報保護装置及び情報保護方法
WO2012093522A1 (ja) * 2011-01-05 2012-07-12 日本電気株式会社 匿名化装置
JP2012159982A (ja) * 2011-01-31 2012-08-23 Kddi Corp 公開情報のプライバシー保護装置、公開情報のプライバシー保護方法およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017204277A (ja) * 2016-05-10 2017-11-16 エアクローク ゲーエムベーハーAircloak GmbH 匿名型統計データベースのクエリのためのシステムおよび方法
US11194823B2 (en) 2016-05-10 2021-12-07 Aircloak Gmbh Systems and methods for anonymized statistical database queries using noise elements

Also Published As

Publication number Publication date
US20150269208A1 (en) 2015-09-24
US10108650B2 (en) 2018-10-23

Similar Documents

Publication Publication Date Title
Yang et al. Privacy-preserving social media data publishing for personalized ranking-based recommendation
US10657178B2 (en) Processing of a generate entity type graph component of a graph analysis system
US20210012028A1 (en) Data product release method or system
US8590049B2 (en) Method and apparatus for providing anonymization of data
US11238169B2 (en) Privacy score
US20120054042A1 (en) Id-value assessment device, id-value assessment system, and id-value assessment method
US10074097B2 (en) Classification engine for classifying businesses based on power consumption
JP2009193465A (ja) 情報処理装置、情報提供システム、情報処理方法、およびプログラム
JP2017204199A (ja) 情報提供装置、情報提供方法および情報提供プログラム
Leong et al. The past and beyond of mobile payment research: a development of the mobile payment framework
US9747419B2 (en) Privacy-compliant analysis of health by transaction data
Raman et al. Electricity consumption of Singaporean households reveals proactive community response to COVID-19 progression
Qiu et al. Estimating disease burden using Internet data
CN111383072A (zh) 一种用户信用评分方法、存储介质及服务器
Li et al. Region-aware neural graph collaborative filtering for personalized recommendation
WO2014073370A1 (ja) 情報処理装置、情報処理方法及びコンピュータプログラム
CN111563527B (zh) 异常事件检测方法以及装置
De Boeck et al. Reviewing review platforms: a privacy perspective
JPWO2014050837A1 (ja) 判定装置、判定方法、及びプログラム
CN113781180A (zh) 一种物品推荐方法、装置、电子设备及存储介质
Jang et al. Deep similarity analysis and forecasting of actual outbreak of major infectious diseases using Internet-Sourced data
Zhu Research on multi‐source mobile commerce service recommendation model of data fusion based on tree network
Yunoh et al. Understanding the factors influencing the adoption of e-wallets by Malaysian youth
Krishnasamy et al. Detecting Sponsored Recommendations
Lin Moving beyond anonymity: Embracing a collective approach to location privacy in data-intensive geospatial analytics

Legal Events

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

Ref document number: 13853163

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14437306

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13853163

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP