WO2012127572A1 - 秘匿データ処理方法、プログラム及び装置 - Google Patents

秘匿データ処理方法、プログラム及び装置 Download PDF

Info

Publication number
WO2012127572A1
WO2012127572A1 PCT/JP2011/056594 JP2011056594W WO2012127572A1 WO 2012127572 A1 WO2012127572 A1 WO 2012127572A1 JP 2011056594 W JP2011056594 W JP 2011056594W WO 2012127572 A1 WO2012127572 A1 WO 2012127572A1
Authority
WO
WIPO (PCT)
Prior art keywords
mask
storage unit
analysis data
data storage
data
Prior art date
Application number
PCT/JP2011/056594
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 PCT/JP2011/056594 priority Critical patent/WO2012127572A1/ja
Priority to JP2013505634A priority patent/JP5594427B2/ja
Publication of WO2012127572A1 publication Critical patent/WO2012127572A1/ja
Priority to US14/029,978 priority patent/US20140019467A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification

Definitions

  • This technology relates to data concealment technology.
  • Data mining technology is a technology that uses computers to find correlations between data contained in a large amount of data stored in a database. By using this technology, it is possible to find a correlation between data even for a large amount of data that cannot be processed by humans.
  • a typical example of how to use data mining technology is the discovery of a combination of products purchased by consumers.By using data mining, consumers who purchase disposable diapers are more likely to purchase beer together. Correlation can be found, and by displaying these highly correlated products close to each other, it is expected to increase sales.
  • Privacy protection data mining (Privacy Preserving Data Mining, hereinafter referred to as PPDM) is known as a conventional technology for realizing secure analysis even in an open environment such as cloud computing.
  • the original data is not held in the database as it is for the database table used for data analysis, but the data obtained by adding a random number to the original data is held in the database.
  • the original database includes a plurality of records including attribute values of attributes such as name, address, and age.
  • each attribute value of each record is masked by adding random values (R1 to R5, S1 to S5, and T1 to T5), and the database Prevent leakage of confidential information from individual records above.
  • Random numbers used for masking data are called “mask values”, but the statistical characteristics of these “mask values” are kept smaller than the statistical characteristics of the entire database, so even from a database that is masked with random numbers.
  • the necessary analysis information can be obtained. Therefore, it is possible to analyze the overall tendency to be obtained by data mining. For example, by adding a random number in the range of -5 to +5 to the data of the attribute “age”, while masking the data of individual records, the approximate age of “20s” and “30s” Trend analysis on features can be performed.
  • PPDM using data randomization is known to have the following two problems.
  • the “numerical attribute” has a magnitude relationship between data representing attributes, and for example, data representing numerical values such as “age”, “height”, “weight”, “annual income”, and the like.
  • the feature of the numerical attribute is that a rough tendency analysis can be performed even if a value slightly deviated from the true value is used.
  • an attribute called “category attribute” has no relation in magnitude to the data value representing the attribute. For example, data representing types such as “person name”, “gender”, “product name”, “job type”, etc. Applicable.
  • the characteristic of the category attribute is that analysis becomes difficult when a value slightly deviated from the true value is used.
  • an analysis algorithm called apriori and used to determine the correlation between the types of products purchased by consumers is executed on data containing category attributes, the analysis accuracy will be significantly reduced.
  • the Apriori basic algorithm counts the frequency of occurrence of correlation between attributes of each record, whereas in PPDM using data randomization, the attributes are masked using random numbers that are not correlated with each other. It is to do. That is, since the correlation between the same records is divided by this random number, it becomes impossible to collect effective correlation data.
  • random numbers R1 to R5 are added to the gender attribute value, and the age attribute is added.
  • Random numbers S1 to S5 are added to the value
  • random numbers T1 to T5 are added to the attribute value of the purchased product 1
  • random numbers U1 to U5 are added to the attribute value of the purchased product 2.
  • the Apriori algorithm is a typical algorithm used for analyzing consumer behavior, and consumers who purchase disposable diapers can find a correlation that they frequently purchase beer together.
  • the correlation between the internal data of the database is analyzed by counting the number of combinations of items that appear in the database table.
  • each record represents a list of products purchased by a consumer.
  • a customer with a customer ID “3021” has purchased beer, green soybeans, a battery, and a disposable diaper, and the customer ID “3022”.
  • An item set is an arbitrary combination of purchased products for each consumer, such as ⁇ beer, green soybeans, beef, paper diapers ⁇ .
  • an item set having a high appearance frequency among these combinations is counted.
  • ⁇ beer, green soybean ⁇ is an item set that appears in customer IDs “3021”, “3023”, “3025” and appears frequently in three out of five, whereas ⁇ beer, battery ⁇ It is an item set with a low frequency that appears only with the customer ID “3021”.
  • the purpose of the Apriori algorithm is to obtain an item set having a high appearance frequency.
  • the appearance frequency is counted while increasing the number of items included in the item set one by one. This utilizes the property that when the appearance frequency of ⁇ beer ⁇ alone is low, the appearance frequency of the combination of ⁇ beer, green soybeans ⁇ is also low. If the appearance frequency of ⁇ beer ⁇ alone is high, the appearance frequency of ⁇ beer, edamame ⁇ with one more item may be high. If the frequency of appearance of ⁇ beer, green beans ⁇ is high enough, the frequency of occurrence of ⁇ beer, green beans, paper diapers ⁇ with one more item may be high as well.
  • FIG. 5A is a representation of FIG. 4 in ABCDEF as described above.
  • C is excluded because of its low appearance frequency.
  • FIG. 5C two item sets as shown in FIG. 5C are generated.
  • FIG. 5D is obtained. Therefore, as shown in FIG.
  • those with high appearance frequency (2 or more) are ⁇ A, B ⁇ , ⁇ A, D ⁇ , ⁇ A, F ⁇ , ⁇ B, D ⁇ , ⁇ B, F ⁇ , ⁇ D, E ⁇ , ⁇ D, F ⁇ .
  • FIG. 5F When an item set of three items is generated from these, the result is as shown in FIG. 5F.
  • FIG. 5G When the appearance frequency is counted for each such item set, a result as shown in FIG. 5G is obtained.
  • an item set (2 or more) having a high appearance frequency is extracted from the result shown in FIG. 5G, the result is as shown in FIG. 5H. That is, ⁇ A, B, D ⁇ , ⁇ A, B, F ⁇ , ⁇ B, D, F ⁇ are obtained.
  • the Apriori algorithm analysis based on counting up the appearance frequency of the combination of items such as ⁇ A, B, F ⁇ is executed.
  • This item combination is a combination of attribute values of “purchased product 1”, “purchased product 2”, “purchased product 3”, and “purchased product 4” shown in FIG. That is, the Apriori algorithm is based on a process of counting the appearance frequency of attribute value combinations in each record of the database. Therefore, when the conventional PPDM as shown in FIG. 2 is used, the attributes are masked with random values that are not correlated with each other, and the counting result is completely randomized, so that an appropriate analysis result cannot be obtained. .
  • an object of the present technology is, in one aspect, to provide a new technology for appropriately performing analysis processing while keeping data secret.
  • the secret data processing method includes (A) generating a predetermined number of mask values for the number of mask target attributes in the database and storing the mask values in a mask data storage unit; For each of a plurality of records including the attribute value of the mask target attribute, select one of a predetermined number of mask values stored in the mask data storage unit, and the mask target attribute in the record corresponding to the selected mask value And a mask processing step of generating masked data of a plurality of records by performing a predetermined calculation on the attribute value and storing it in the data storage unit.
  • the secret data processing method includes (A) a set having the highest appearance probability stored in a mask data storage unit that stores a predetermined number of mask values corresponding to the number of mask target attributes in the database. (B) for each of a plurality of analysis data sets stored in the analysis data storage unit and including the masked attribute value, a masked attribute value included in the analysis data set, and a reading A step of generating unmasked data by performing an inverse mask operation of a predetermined mask operation with respect to the corresponding mask value among the issued mask values, and storing the data in a data storage unit.
  • the secret data processing method includes (A) a plurality of analysis data sets that are stored in the analysis data storage unit and include masked attribute values, and are included in the analysis data set.
  • the inverse of the mask operation determined in advance for the masked attribute value and the corresponding mask value included in each set stored in a mask data storage unit that stores a predetermined number of mask values corresponding to the number of mask target attributes in the database
  • a predetermined number of unmask analysis data sets are generated, and the unmask is associated with the appearance frequency of the analysis data set stored in the analysis data storage unit in association with the analysis data set.
  • FIGS. 1A and 1B are diagrams for explaining the prior art.
  • FIG. 2 is a diagram for explaining the related art.
  • FIG. 3 is a diagram for explaining the prior art.
  • FIG. 4 is a diagram for explaining the prior art.
  • FIG. 5A is a diagram for explaining the Apriori algorithm.
  • FIG. 5B is a diagram for explaining the Apriori algorithm.
  • FIG. 5C is a diagram for explaining the Apriori algorithm.
  • FIG. 5D is a diagram for explaining the Apriori algorithm.
  • FIG. 5E is a diagram for explaining the Apriori algorithm.
  • FIG. 5F is a diagram for explaining the Apriori algorithm.
  • FIG. 5G is a diagram for explaining the Apriori algorithm.
  • FIG. 5H is a diagram for explaining the Apriori algorithm.
  • FIG. 6A and 6B are diagrams for describing an embodiment of the present technology.
  • FIG. 7 is a diagram for explaining the effect of the present embodiment.
  • FIG. 8 is a system outline diagram of the embodiment.
  • FIG. 9 is a functional block diagram of the user apparatus.
  • FIG. 10 is a diagram for explaining the processing of the initial processing unit.
  • FIG. 11 is a diagram illustrating a process flow of the mask process in the first embodiment.
  • FIG. 12 is a diagram illustrating a process flow of the unmask process in the first embodiment.
  • FIG. 13 is a diagram illustrating a processing flow of unmask processing in the first embodiment.
  • FIG. 14 is a diagram for explaining an outline of the unmask processing in the first embodiment.
  • FIG. 15 is a diagram showing a processing flow of mask processing in the second embodiment.
  • FIG. 16 is a diagram for explaining the outline of the unmask processing in the second embodiment.
  • FIG. 17 is a diagram illustrating a processing flow of unmask processing in the second embodiment.
  • FIG. 18 is a diagram illustrating a processing flow of unmask processing in the second embodiment.
  • FIG. 19 is a diagram illustrating a process flow of the unmask process in the second embodiment.
  • FIG. 20A is a diagram for explaining cross tabulation.
  • FIG. 20B is a diagram for explaining cross tabulation.
  • FIG. 20C is a diagram for explaining cross tabulation.
  • FIG. 21 is a diagram for illustrating an outline of unmask processing in the third embodiment.
  • FIG. 22 is a functional block diagram of a computer.
  • N mask value sets including a plurality of mask values are prepared in advance, and from these, One is selected for each row of the database by a random number, and the record is masked by the mask value set.
  • the mask value set represents the mask values for each mask target attribute as one set. For example, in the case where there are three types of mask target attributes as shown in FIGS. 6A and 6B, when two types of mask value sets are switched with random numbers, as shown in FIG. Two types of sets ⁇ F 1 , G 1 , H 1 ⁇ and ⁇ F 2 , G 2 , H 2 ⁇ are prepared. However, ⁇ F 1 , G 1 , H 1 ⁇ and ⁇ F 2 , G 2 , H 2 ⁇ are all constants.
  • F 1 and F 2 are mask values for masking the first attribute
  • G 1 and G 2 are masking the second attribute
  • H 1 and H 2 are mask values for masking the third attribute
  • ⁇ F 1 , G 1 , H 1 ⁇ or ⁇ F 2 , G 2 , H 2 ⁇ are selected by random numbers and used for masking attribute values.
  • the correlation between attributes is shifted by the mask value. Since it can be masked while storing, even when the Apriori algorithm or the like is used, the analysis accuracy does not deteriorate.
  • ⁇ F 1 , G 1 , H 1 ⁇ and ⁇ F 2 , G 2 , H 2 ⁇ are used for unmasking for the counting result, these values are used as keys.
  • the safe data mining used can be realized. In other words, by performing analysis processing in the masked state, it is possible to safely perform analysis in an open environment, and perform unmasking on the obtained analysis results to obtain appropriate analysis results. Can be obtained. Analyzing data that requires high computer processing power in a cloud computing environment, the main system cost is kept low, and the decryption processing after the calculation result is output is closed by the company. By implementing it in a secure computing environment, it is possible to achieve both cost reduction of the system and prevention of leakage of confidential information.
  • the cost of re-conversion to original data is reduced. That is, when PPDM according to the conventional method is used, as shown in FIG. 3, a mask value table having the same size as the masked data table is held, whereas FIG. As shown schematically, the mask selection data indicating which mask value set is selected and the data of the used mask value set may be held instead of the mask value table. Unlike the method of holding a table of mask values, the amount of data for holding mask selection data is very small, so that the cost of re-conversion to original data can be reduced.
  • FIG. 8 shows a configuration diagram of a system according to the present embodiment.
  • a cloud computing environment 5 that provides a data analysis service is provided to a plurality of users via a network 1 such as the Internet.
  • a network 1 such as the Internet.
  • Each user connects user devices 3 and 7 to the network 1 and uses the cloud computing environment 5 using the user devices 3 and 7.
  • the cloud computing environment 5 includes a database 53 that accumulates data received from the user devices 3 and 7, and an analysis device 51 that performs various analysis processes.
  • the analysis process performed by the analysis apparatus 51 includes various analysis processes such as cross tabulation in addition to the Apriori algorithm described above, but is the same as that conventionally performed.
  • FIG. 9 shows a functional block diagram of the user device 3.
  • the user device 3 includes a data transmission unit 31, a data collection unit 41, a data storage unit 32, an initial processing unit 33, a mask data storage unit 35, a mask processing unit 34, a data reception unit 36, and analysis data.
  • a storage unit 37, a masked data storage unit 38, an unmask processing unit 39, an unmask analysis data storage unit 40, and an original data storage unit 42 are provided.
  • the data collection unit 41 performs processing for collecting original data, and stores the collected original data in the data storage unit 32. Note that data in the user's system may be automatically collected as described above, or may be stored in the data storage unit 32 in accordance with a user instruction.
  • the initial processing unit 33 generates a mask value set according to settings or a user instruction, and stores it in the mask data storage unit 35.
  • the mask processing unit 34 performs mask processing using the mask value set stored in the mask data storage unit 35 and stores the masked data in the data storage unit 32.
  • the original data may be stored so as to be replaced, or may be stored in another area.
  • the mask processing unit 34 also stores the mask selection data described above in the data storage unit 32.
  • the mask selection data may also be stored in another data storage unit.
  • the data transmission unit 31 stores the masked data in the database 53 in the cloud computing environment 5 via the network 1.
  • an instruction from the user device 3 an instruction from a user terminal connected to the network 1, or periodically, the analysis device 51 determines the masked data stored in the database 53 as described above. The analysis processing is performed, masked analysis data is generated, and transmitted to the user device 3.
  • the data reception unit 36 of the user device 3 stores the received analysis data in the analysis data storage unit 37.
  • the unmask processing unit 39 performs unmasking processing described below on the masked analysis data stored in the analysis data storage unit 37 using a mask value set stored in the mask data storage unit 35. Then, the processing result is stored in the unmask analysis data storage unit 40.
  • the data receiving unit 36 reads the masked data from the database 53 and stores the masked data in the masked data storage unit 38. .
  • the unmask processing unit 39 performs mask selection data stored in the mask value set stored in the mask data storage unit 35 and mask selection data stored in the data storage unit 32 with respect to the masked data stored in the masked data storage unit 38.
  • the inverse operation of the masking process is performed using and the original data as the processing result is stored in the original data storage unit 42.
  • the original data is database data including a plurality of records.
  • the initial processing unit 33 increments c by 1 (step S7), and determines whether c is N or less (step S9). If c is N or less, the process returns to step S5. On the other hand, if c exceeds N, the process ends.
  • N sets of mask value sets including k random numbers are generated and stored in the mask data storage unit 35.
  • the k random numbers are used for any of the k mask target attributes.
  • the mask processing unit 34 generates a random number r in accordance with a certain distribution within a range of 1 to N or less (step S15).
  • the mask processing unit 34 stores the correspondence relationship between L and r as mask selection data in the data storage unit 32 (step S17). As a result, the original data can be restored.
  • the mask processing unit 34 generates masked data Dm by performing masking using the mask value set Mask [r] (step S19).
  • An example of such a function is as follows.
  • T is a constant.
  • the above function may be another function, but is preferably as simple as possible.
  • f (x, y) represents an operation for masking the database, but in data mining, depending on the application, data input to the database is collected in real time and the amount of data becomes enormous. is there.
  • the masking processing function f (x, y) is preferably a simple arithmetic processing as shown in the above example.
  • the mask processing unit 34 replaces the attribute value D of the mask target attribute in the Lth row of the original data with the masked data Dm in the data storage unit 32 (step S21).
  • the mask processing unit 34 increments L by 1 (step S23), and determines whether L is equal to or less than the number of records Lmax of the original data (step S25). If L is equal to or less than Lmax, the process returns to step S13. On the other hand, if L exceeds Lmax, the process is terminated.
  • the attribute value of each mask target attribute can be masked.
  • the analysis process can be appropriately performed.
  • the size of the mask selection data for restoring the original data is small, the data capacity for holding data can be reduced.
  • analysis processing is, for example, the Apriori algorithm, and a description thereof is omitted here. That is, since the analysis process is performed as in the past with the masked, the analysis result is also masked.
  • the data receiving unit 36 receives analysis data as a result of the analysis process from the analysis device 51 and stores it in the analysis data storage unit 37 (step S31).
  • the analysis data remains masked, and in the case of the Apriori algorithm, includes data on the item set and its appearance frequency.
  • the unmask processing unit 39 extracts the top U item sets C i having the highest appearance frequency from the analysis data stored in the analysis data storage unit 37 (step S33).
  • the item set is expressed as follows.
  • C 1 ⁇ I 1,1 , I 1,2 , ... I 1, max_1 ⁇
  • C 2 ⁇ I 2,1 , I 2,2 , ... I 2, max_2 ⁇
  • C U ⁇ I U, 1 , I U, 2 ,... I U, max_U ⁇
  • the unmask processing unit 39 reads out the mask value set Mask [s] having the highest appearance frequency among the mask value sets stored in the mask data storage unit 35 (step S35).
  • the unmask processing unit 39 initializes the counter i for the item set and the counter j for the item to 1 (step S37). Further, the unmask processing unit 39 sets an empty set in the unmask analysis data D i (step S39). Then, the unmask processing unit 39 identifies the j-th item value I i, j of the item set C i (step S41). The processing shifts to the processing in FIG.
  • the unmask processing unit 39 determines whether I i, j is an attribute value of the mask target attribute (step S43).
  • items such as A, B, and C handled in the Apriori algorithm are expressed as attribute values (for example, the attribute values for the attribute “sex” are “male” and “female”) for the sake of simplification.
  • the unmask processing unit 39 sets I i, j to I (step S45). This is because it is not necessary to unmask the attribute value if it is not a mask target attribute. Thereafter, the process proceeds to step S51.
  • the unmask processing unit 39 specifies the mask value of the attribute related to I i, j in Mask [s] and sets it to M ( Step S47). As described above, if I i, j is an attribute value of which mask target attribute, the corresponding mask value can be specified.
  • unmask processing unit 39 adds the I to the set D i (step S51). Then, the unmask processing unit 39 increments j by 1 (step S53), and determines whether j is equal to or less than jmax which is the maximum value of j (step S55). If j is equal to or less than jmax, the process returns to step S41 via the terminal B. On the other hand, if j exceeds jmax, the unmask processing unit 39 increments i by 1 and initializes j to 1 (step S57). Then, the unmask processing unit 39 determines whether i is U or less (step S59). If i is less than or equal to U, the process returns to step 39 via terminal C.
  • the unmask processing unit 39 stores the set D i in the unmask analysis data storage unit 40 (step S61).
  • the result sorted by the appearance frequency of the set D i may be stored. Note that the data stored in the unmask analysis data storage unit 40 is presented to the user in response to an instruction from the user. This ends the process.
  • the item set ⁇ A, B, D ⁇ is 2000 times
  • the item set ⁇ A, B, C, E ⁇ is 1900 times
  • Mask [2] Assume that the appearance ratio of ⁇ M 2,1 , M 2,2 ,... M 2, k ⁇ is 0.4.
  • the analysis result for the masked data is ⁇ f (A, M 1,1 ), f (B, M 1, 2 ), f (D, M 1,4 ) ⁇ or ⁇ f (A, M 2,1 ), f (B, M 2,2 ), f (D, M 2,4 ) ⁇ .
  • the former is detected approximately 1200 times and the latter is detected 800 times.
  • the masked analysis data (for example, item set) is also masked by Mask [1].
  • the analysis processing can be performed with the data masked, and the analysis result can be used by appropriately unmasking the analysis result.
  • the unmasking is performed after first narrowing down to U item sets. However, if the appearance frequency values are stored in association with each other, they are sorted by the appearance frequency values after unmasking. Then, the upper U pieces may be adopted.
  • the mask processing unit 34 generates a uniform random number r within a range of 1 to N or less (step S65). Unlike the first embodiment, in this embodiment, random numbers are generated so that the appearance frequency is uniform. Then, the mask processing unit 34 stores the correspondence relationship between L and r as mask selection data in the data storage unit 32 (step S66). As a result, the original data can be restored.
  • the mask processing unit 34 generates masked data Dm by performing masking using the mask value set Mask [r] (step S67).
  • the relationship between x and z is a bijective relationship and satisfies f (a, b) ⁇ f ⁇ 1 (a, b). It becomes a function. That is, addition, addition residue, multiplication, multiplication residue, subtraction, and subtraction residue can be used, but exclusive OR cannot be used. The reason for this will also be described in the description of the unmask process. Others are the same as those in the first embodiment.
  • the mask processing unit 34 replaces the attribute value D of the mask target attribute in the Lth row of the original data with the masked data Dm in the data storage unit 32 (step S69).
  • the mask processing unit 34 increments L by 1 (step S71), and determines whether L is equal to or smaller than the number of records Lmax of the original data (step S73). If L is less than or equal to Lmax, the process returns to step S63. On the other hand, if L exceeds Lmax, the process is terminated.
  • analysis processing is, for example, the Apriori algorithm, and a description thereof is omitted here. That is, since the analysis process is performed as in the past with the masked, the analysis result is also masked.
  • the unmask process will be described with reference to FIGS.
  • differences from the first embodiment will be described using a specific example.
  • the item set ⁇ A, B, D ⁇ is 2000 times
  • the item set ⁇ A, B, C, E ⁇ is 1900 times
  • the item set ⁇ A , D, E, F ⁇ are detected 1800 times.
  • Mask [2] Assume that the appearance ratio of ⁇ M2,1 , M2,2 , ... M2 , k ⁇ is 0.5. That is, the appearance frequency is the same.
  • the analysis result for the masked data has the form ⁇ A + M 1,1 , B + M 1,2 , D + M 1,4 ⁇ for ⁇ A, B, D ⁇ , as shown on the right side of FIG. Or ⁇ A + M 2,1 , B + M 2,2 , D + M 2,4 ⁇ .
  • addition is employed for the masking calculation. With the appearance ratio of the mask value set as described above, the former is detected approximately 1000 times and the latter is detected 1000 times.
  • ⁇ A, B, C, E ⁇ is detected in the form of ⁇ A + M 1,1 , B + M 1,2 , C + M 1,3 , E + M 1,5 ⁇ or ⁇ A + M 2,1 , B + M 2,2 , C + M 2,3 , E + M 2,5 ⁇ are detected.
  • the former is detected approximately 950 times and the latter is detected 950 times.
  • ⁇ A, D, E, F ⁇ is detected in the form of ⁇ A + M 1,1 , D + M 1,4 , E + M 1,5 , F + M 1,6 ⁇ or ⁇ A + M 2,1 , D + M 2,4 , E + M2,5 , F + M2,6 ⁇ .
  • the former is detected approximately 900 times and the latter is detected 900 times.
  • each mask value set is applied to all masked analysis data (for example, item sets).
  • the two mask value sets are applied to each of the three item sets to be unmasked. If the same unmasked result is obtained, the appearance frequencies are totaled. And adopt it as the final analysis result. If the correct mask value set is used, the correct item set is restored, and if the wrong mask value set is used, the incorrect item set is restored. However, since it is masked by any mask value set, if all mask value sets are applied, the correct item set is restored N times, whereas the wrong mask value set is applied. Cannot be aggregated because no matching item set is generated. Therefore, a correct analysis result appears in an item set having a high appearance frequency.
  • step S65 it is described that uniform random numbers are generated.
  • ⁇ A The result of B, D ⁇ 2000 times is the same, and the appearance frequency only varies in the case of unmask failure.
  • exclusive OR cannot be used in this embodiment. That is, f (a, b) ⁇ f ⁇ 1 (a, b) is a requirement.
  • ⁇ A, B, D ⁇ is 2000 times compared to ⁇ A, B, D ⁇ 2000 times, so ⁇ A, B, D ⁇ Is correct.
  • the data receiving unit 36 receives analysis data as a result of the analysis process from the analysis device 51 and stores it in the analysis data storage unit 37 (step S81).
  • the analysis data remains masked, and in the case of the Apriori algorithm, includes data on the item set and its appearance frequency.
  • the unmask processing unit 39 extracts the top N ⁇ U item sets C i and the appearance frequency Fi having the highest appearance frequency from the analysis data stored in the analysis data storage unit 37 (step S83).
  • the item set C i is expressed as follows.
  • C 1 ⁇ I 1,1 , I 1,2 , ... I 1, max_1 ⁇
  • C 2 ⁇ I 2,1 , I 2,2 , ... I 2, max_2 ⁇
  • C U ⁇ I U * N, 1 , I U * N, 2 ,... I U * N, max_U ⁇
  • the unmask processing unit 39 initializes the counter i for the item set, the counter j for the item, and the counter r of the mask value set to 1 (step S87). Further, the unmask processing unit 39 sets an empty set in the unmask analysis data D i, r (step S89). Then, the unmask processing unit 39 specifies the j-th item value I i, j of the item set C i (step S91). The processing shifts to the processing in FIG.
  • the unmask processing unit 39 determines whether I i, j is an attribute value of the mask target attribute (step S ⁇ b> 93). As in step S43, it is possible to determine whether or not the attribute value is a mask target attribute.
  • the unmask processing unit 39 sets I i, j to I (step S95). This is because it is not necessary to unmask the attribute value if it is not a mask target attribute. Thereafter, the process proceeds to step S101.
  • the unmask processing unit 39 specifies the mask value of the attribute related to I i, j in Mask [r] and sets it to M ( Step S97). As described above, if I i, j is an attribute value of which mask target attribute, the corresponding mask value can be specified.
  • the unmask processing unit 39 adds I to the set D i, r (step S101). Then, the unmask processing unit 39 increments j by 1 (step S103), and determines whether j is equal to or less than jmax which is the maximum value of j (step S105). If j is equal to or less than jmax, the process returns to step S93. On the other hand, when j exceeds jmax, the unmask processing unit 39 sets the appearance frequency Fi of D i, r to the frequency G i, r (step S107). Even if r changes, if i is the same, the same value is set. This indicates a situation where the same value is set on the left and right in the lower part of FIG.
  • the unmask processing unit 39 increments r by 1 and initializes j to 1 (step S109). Thereafter, the unmask processing unit 39 determines whether r is N or less (step S111). If r is N or less, the process returns to step S91 via the terminal E. On the other hand, when r exceeds N, the processing shifts to the processing in FIG.
  • the unmask processing unit 39 increments i by 1 and initializes j and r to 1 (step S113). Further, the unmask processing unit 39 determines whether i is N ⁇ U or less (step S115). If i is N ⁇ U or less, the process returns to step S89 via the terminal G. On the other hand, when i exceeds N ⁇ U, the unmask processing unit 39 tabulates the appearance frequencies G i, r of the same D i, r and sorts them in descending order of appearance frequency (step S117).
  • the unmask processing unit 39 stores, in the unmask analysis data storage unit 40, the upper U pieces (in some cases, the number of the upper predetermined ratio) having the highest appearance frequency among D i, r as the set D i of analysis results. (Step S119).
  • ⁇ A, B, D ⁇ ⁇ A, B, C, E ⁇ ⁇ A, D, E, F ⁇ are stored in the unmask analysis data storage unit 40. Note that the data stored in the unmask analysis data storage unit 40 is presented to the user in response to an instruction from the user.
  • the analysis process may be not only the Apriori algorithm but also the aggregation process.
  • the aggregation process is a simple process, but is one of analysis methods that are widely used because the meaning of the analysis result is very easy for humans to understand.
  • cross tabulation for determining the frequency of a combination of two attributes is very often used as a method for easily visualizing the correlation between two attributes included in data.
  • FIGS. 20A to 20C Examples of general cross tabulation are shown in FIGS. 20A to 20C.
  • FIG. 20A shows an example in which each attribute of annual income, purchase amount, and occupation has three values. That is, the annual income is classified by a1, a2, a3, the purchase amount is classified by b1, b2, b3, and the occupation is classified by c1, c2, c3, and the correlation between these attributes can be visualized by cross tabulation. As shown in FIG.
  • the appearance frequency of the combination of items is calculated in the same manner as the Apriori algorithm, but differs from the Apriori algorithm in the following points.
  • the basic processing content when performing such cross tabulation is the same as that of the second embodiment. That is, the initial process is the same as that of the first embodiment, and the mask process is also the same as that of the second embodiment. However, the unmask process is different only in step S83 in FIG. That is, in step S83, the top N ⁇ U item sets having a high appearance frequency are extracted. However, in the case of the cross tabulation process, all results are used, and therefore, the extraction process is not performed. Is used as is.
  • each mask value set is applied to each attribute value combination. To do. Specifically, it is as follows.
  • step S65 it is described that uniform random numbers are generated. However, even if non-uniform random numbers are used, if the above-described processing is performed, correctly unmasked attribute value combinations are aggregated. The result of ⁇ a1, b1 ⁇ 1000 times is the same, and only the occurrence frequency varies in the case of unmask failure.
  • FIGS. 8 to 9 are examples, and do not necessarily match the actual program module configuration.
  • the order of the steps may be changed or may be executed in parallel.
  • the user devices 3 and 7 and the analysis device 51 described above are computer devices, and as shown in FIG. 22, a memory 2501, a CPU (Central Processing Unit) 2503, a hard disk drive (HDD: Hard Disk Drive) 2505, a display control unit 2507 connected to the display device 2509, a drive device 2513 for the removable disk 2511, an input device 2515, and a communication control unit 2517 for connecting to a network are connected by a bus 2519.
  • An operating system (OS: Operating System) and an application program for performing the processing in this embodiment are stored in the HDD 2505, and are read from the HDD 2505 to the memory 2501 when executed by the CPU 2503.
  • OS Operating System
  • the CPU 2503 controls the display control unit 2507, the communication control unit 2517, and the drive device 2513 according to the processing content of the application program, and performs a predetermined operation. Further, data in the middle of processing is mainly stored in the memory 2501, but may be stored in the HDD 2505. In an embodiment of the present technology, an application program for performing the above-described processing is stored in a computer-readable removable disk 2511 and distributed, and installed from the drive device 2513 to the HDD 2505. In some cases, the HDD 2505 may be installed via a network such as the Internet and the communication control unit 2517. Such a computer apparatus realizes various functions as described above by organically cooperating hardware such as the CPU 2503 and the memory 2501 described above with programs such as the OS and application programs. .
  • a predetermined number of mask values for the number of mask target attributes in the database are generated and stored in the mask data storage unit;
  • the masked data can be generated while maintaining the correlation between the attributes in the record.
  • the data for restoring the original data from the masked data can be saved by holding the selection result of the mask value.
  • the mask processing step described above may include a step of selecting a predetermined number of mask values by generating random numbers from 1 to a predetermined number uniformly or according to a distribution having a predetermined peak. Good. If a random number like the latter is used, the unmask process can be simplified and a simplified result can be obtained.
  • the predetermined calculation is such that the relationship between the attribute value and the calculation result is bijective. In this way, it is possible to restore the masked data.
  • the most probable appearance probability is stored in a mask data storage unit that stores a predetermined number of mask values for the number of mask target attributes in the database.
  • the secret data processing method includes (A) a plurality of analysis data sets that are stored in the analysis data storage unit and include masked attribute values, and are included in the analysis data set.
  • the inverse of the mask operation determined in advance for the masked attribute value and the corresponding mask value included in each set stored in a mask data storage unit that stores a predetermined number of mask values corresponding to the number of mask target attributes in the database
  • a predetermined number of unmask analysis data sets are generated, and the unmask is associated with the appearance frequency of the analysis data set stored in the analysis data storage unit in association with the analysis data set.
  • the confidential data processing method includes a plurality of analysis data sets having an appearance frequency of a higher predetermined number or a higher predetermined ratio among a plurality of analysis data sets received from a computer that has performed analysis processing. You may make it include the step stored in a storage part. Depending on the type of analysis processing, it may be preferable to perform extraction processing. In the case of the Apriori algorithm, it may be extracted.
  • a program for causing a computer to carry out the processing described above such as a flexible disk, an optical disk such as a CD-ROM, a magneto-optical disk, a semiconductor memory (for example, ROM). Or a computer-readable storage medium such as a hard disk or a storage device. Note that data being processed is temporarily stored in a storage device such as a RAM.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

 データベースにおけるマスク対象属性の数分のマスク値を、所定数セット生成し、マスク対象属性の属性値を含む複数のレコードの各々について、所定数セットのマスク値のいずれかを選択し、選択されたマスク値と対応するレコードにおけるマスク対象属性の属性値とについて予め定められた演算を実施することで複数のレコードのマスク化データを生成する。マスク値の選択結果をレコードの識別子と対応付けて保持することで、アンマスク処理の際に用いるデータの量を減らすことができる。

Description

秘匿データ処理方法、プログラム及び装置
 本技術は、データ秘匿化技術に関する。
 データマイニング技術とは、データベースに格納された大量のデータに含まれるデータ間の相関関係を、コンピュータを用いて発見する技術である。この技術を用いることで、人間では処理不可能な大量のデータに対しても、データ間の相関関係を発見することができる。データマイニング技術の利用方法の代表例が、消費者が購入する商品の組み合わせの発見であり、データマイニングを用いることで、紙おむつを購入する消費者は、一緒にビールを購入する頻度が高い、といった相関関係を発見することができ、これらの相関関係の高い商品を互いに近くに陳列することで、売上高を伸ばすことが期待される。
 従来、データマイニングを行う場合には、自社のコンピュータを用いてデータ収集と分析を行っていた。しかし、今後クラウドコンピューティングの普及に伴い、データの収集と分析を外部のクラウドコンピューティング環境で実施することで、システムの維持コストを低く抑えつつ、高い分析効果を得るといった方法が主流となると予想される。データの収集と分析を外部のクラウドコンピューティング環境に任せることでコストを削減できる反面、プライバシーが低下するという問題が知られている。すなわち、従来のデータマイニングでは自社の閉じた計算機環境で処理を行っており、機密情報の漏洩が発生しにくかったのに対し、クラウドコンピューティングを利用したデータマイニングでは、オープンな計算機環境を複数の利用者により利用するため、機密情報の漏洩リスクが高まると予想されている。
 クラウドコンピューティングのようなオープンな環境下でも、安全な分析を実現するための従来技術として、プライバシー保護データマイニング(Privacy Preserving Data Mining。以下 PPDMと記す。)が知られている。
 PPDMには、いくつかの実現方式が知られている。代表的な方式として、データのランダム化を用いた方法が知られている。
 このデータのランダム化を用いたPPDMでは、データ分析に用いられるデータベーステーブルに対して、オリジナルデータをそのままデータベースに保持するのではなく、オリジナルデータに対し乱数を加算したデータをデータベースに保持する。図1(a)に示すように、オリジナルのデータベースには、例えば氏名、住所、年齢といった属性の属性値を含む複数のレコードが含まれる。これに対して、図1(b)に示すように、各レコードの各属性値に対して、乱数値(R1乃至R5、S1乃至S5及びT1乃至T5)を加算することでマスクして、データベース上の個々のレコードからの機密情報の漏洩を防止する。
 データのマスクに用いられる乱数を「マスク値」と呼ぶが、この「マスク値」が有する統計的特徴を、データベース全体が持つ統計的特徴より小さく抑えることで、乱数によるマスク化されたデータベースからも、必要な分析情報を得ることができる。従って、データマイニングで求めるべき全体傾向の分析を実施することができる。例えば、「年齢」という属性のデータに対し、-5から+5の範囲の乱数を加えることで、個々のレコードのデータをマスクしながら、「20歳代」「30歳代」という大まかな年齢の特徴に関する傾向分析を実施することができる。ただし、データのランダム化を用いるPPDMには、以下に示す2つの問題があることが知られている。
(A)分析精度の低下
 データをマスクするため、基本的には分析結果の低下を伴うが、分析対象のデータの種類や、用いる分析アルゴリズムの種類によっては、さらに深刻な分析精度の低下を引き起こす。例えば、「年齢」という属性のデータに対し、-5から+5の範囲の乱数を加えてマスクした場合、「20歳代」「30歳代」という大まかな年齢の特徴に関する傾向分析を実施することができるが、マスクしない状態で「年齢」属性を用いたデータ分析を行った場合と比較して、相対的に分析精度が低下する。
 しかし、それでも「20歳代」「30歳代」という大まかな年齢の特徴に関する傾向分析が実施できるメリットを有するが、このメリットを有するのは、年齢が「数値属性」と呼ばれる属性であることによるものである。「数値属性」とは、属性を表すデータ間に大小関係があるものであり、例えば「年齢」「身長」「体重」「年収」などの数値を表すデータが該当する。数値属性の特徴は、真の値から多少ずれた値を用いたとしても、大まかな傾向分析を行うことができる点である。これに対して、「カテゴリ属性」と呼ばれる属性は、属性を表すデータ値に大小関係がないものであり、例えば、「人名」「性別」「商品名」「職種」などの種類を表すデータが該当する。カテゴリ属性の特徴は、真の値から多少でもずれた値を用いた場合、分析が困難となることである。特に、アプリオリ(Apriori)と呼ばれ且つ消費者が購入する商品の種類の相関を求めるために利用される分析アルゴリズムを、カテゴリ属性を含むデータに対して実行した場合、分析精度が著しく悪くなるという問題がある。原因は、Aprioriの基本アルゴリズムが、各レコードの属性間の相関関係の発生頻度をカウントするのに対し、データのランダム化を用いたPPDMでは、属性間を互いに相関性のない乱数を用いてマスクするためである。すなわち、この乱数により同一レコード間の相関関係が分断されるため、有効な相関関係のデータを収集できなくなる。
 より具体的には、図2に示すように、性別、年齢、購入商品1、購入商品2といった属性を含む複数のレコードにおいて、性別の属性値には乱数R1乃至R5を加算し、年齢の属性値には乱数S1乃至S5を加算し、購入商品1の属性値には乱数T1乃至T5を加算し、購入商品2の属性値には乱数U1乃至U5が加算されている。そして、同一のレコードの属性値であっても加算される乱数は全く相関もない値となっているため、上で述べたような問題が生ずる。
(B)オリジナルデータへの再変換のコストが高い
 さらに、分析とは別の目的で、マスク化前のオリジナルのデータ(すなわち真のデータ値)を個別に参照する場合、データのランダム化を用いたPPDMを用いると、オリジナルのデータに再変換するためのコストが高いという問題がある。すなわち、秘匿化する全てのデータを互いに相関のない乱数でマスクしているため、図3に示すように、アンマスクすることでマスク前の状態に戻すには、全てのマスク値のデータを別途保持することになる。すなわち、データベースのデータ量が2倍となるためコストが高くなる。
 ここで、上で述べたAprioriアルゴリズムについて説明しておく。
 Aprioriアルゴリズムは、消費者の行動分析に用いられる代表的なアルゴリズムであり、紙おむつを購入する消費者は、一緒にビールを購入する頻度が高い、といった相関関係を発見することができる。データベースのテーブル中に出現するアイテムの組み合わせ数をカウントすることで、データベースの内部データ間の相関関係を分析する。
 以下では、Aprioriアルゴリズムの具体的処理内容について、簡単なサンプルを用いて説明する。例えば、以下では図4に示すようなテーブルを処理するものとする。図4の例では、各レコードが、消費者が購入した商品のリストを表しており、例えば、顧客ID「3021」の顧客はビール、枝豆、電池、紙おむつを購入しており、顧客ID「3022」は牛肉、シャツ、紙おむつを購入していることを表している。
 このテーブルから、購入商品の組み合わせの相関関係を分析するために、Aprioriアルゴリズムでは、アイテム集合の数え上げを実行する。アイテム集合とは、{ビール,枝豆,牛肉,紙おむつ}といったような、消費者ごとの購入商品の任意の組み合わせである。例えば、{ビール,枝豆}や、{電池,牛肉,シャツ}や、{ビール,牛肉,電池,紙おむつ}など、任意の購入商品の組み合わせである。Aprioriアルゴリズムでは、これらの組み合わせのうち、出現頻度の高いアイテム集合の数え上げを実行する。例えば、{ビール,枝豆}は、顧客ID「3021」「3023」「3025」において出現し、5人中3人で出現する頻度の高いアイテム集合であるのに対し、{ビール,電池}は、顧客ID「3021」でしか出現しない頻度の低いアイテム集合である。Aprioriアルゴリズムの目的は、出現頻度の高いアイテム集合を求めることである。
 Aprioriアルゴリズムでは、出現頻度の高いアイテム集合を求めるために、アイテム集合に含まれるアイテムの個数を一つずつ増やしながら、出現頻度のカウントを行う。これは、{ビール}単品の出現頻度が少ない場合、{ビール,枝豆}の組み合わせの出現頻度も少なくなるという性質を利用している。もし、{ビール}単品の出現頻度が高ければ、もう1つアイテムを増やした{ビール,枝豆}の出現頻度も高い可能性がある。そして{ビール,枝豆}の出現頻度を数え上げた結果十分高ければ、もう1つアイテムを増やした{ビール,枝豆,紙おむつ}の出現頻度も同様に高い可能性がある。
 このように、アイテムを1つずつ増やしながら出現頻度を数え上げる。一般的なデータベーステーブルを用いた場合、任意のアイテムの組み合わせの出現頻度を数え上げるのは指数的な計算コストがかかるため現実的でないが、Aprioriアルゴリズムではアイテムを少しずつ増やしながら数え上げを行うことで、出現頻度の効率的な数え上げを実現する。
  図4に示したテーブルについてAprioriアルゴリズムで数え上げを実施する過程を図5A乃至図5Hに示す。なお、以下では、説明を簡略化するために、ビール=A、枝豆=B、電池=C、牛肉=D、シャツ=E及び紙おむつ=Fとする。 図5Aは、図4を上で述べたようにABCDEFで表現し直したものである。そして、アイテム1つで出現頻度を計数すれば、図5Bに示すような結果が得られる。ここでCは出現頻度が少ないので除外されている。そうすると、図5Cに示すようなアイテム2つのアイテム集合が生成される。このように生成されたアイテム集合毎に出現頻度を計数すると、図5Dに示すような結果が得られる。よって、図5Eに示すように、出現頻度が高いもの(2以上)は{A,B},{A,D},{A,F},{B,D},{B,F},{D,E},{D,F}と特定される。この中から、アイテム3つのアイテム集合を生成すると、図5Fに示すようになる。このような各アイテム集合について、出現頻度を計数すると、図5Gに示すような結果が得られる。図5Gに示した結果から、出現頻度が高いアイテム集合(2以上)を抽出すると、図5Hに示すようになる。すなわち、{A,B,D},{A,B,F},{B,D,F}が得られる。
 このような出現頻度の数え上げが完了すれば、あとはアイテム間の相関関係を求めるのは容易である。なぜなら、{A,B,F}が2回、{A,B}が3回出現するということは、{A,B}ならば{A,B,F}である確率が2/3で成立することを意味する。
 このように、AかつBを前提とした場合、結果Fが高確率で期待できることを、A&B->Fという記号で表記する。すなわち、{A,B}={ビール,枝豆}を購入する消費者(全体の3/5という大きな割合を占める)は、高い確率2/3で{A,B,F}={ビール,枝豆,紙おむつ}を購入するという結論が導出できる。その他の購入品の組み合わせの相関については、出現頻度が高い他のアイテム集合の組み合わせを用いることで、同様に導出することができる。
 このように、Aprioriアルゴリズムでは、{A,B,F}のようなアイテムの組み合わせの出現頻度の数え上げに基づいた分析が実行される。このアイテムの組み合わせは、図4に示される、「購入商品1」「購入商品2」「購入商品3」「購入商品4」の属性値の組み合わせである。すなわち、Aprioriアルゴリズムは、データベースの各レコードにおける属性値の組み合わせの出現頻度をカウントする処理に基づいている。よって、図2に示されるような従来のPPDMを用いた場合、属性間が互いに相関のない乱数値でマスクされ、数え上げ結果が完全にランダム化されるため、適切な分析結果を得ることができない。
Agarwal R. and Srikant R. "Privacy-Preserving Data Mining" Proceedings of the ACM SIGMOD Conference, 2000 Yehuda L. and Benny P. "Privacy-Preserving Data Mining", Advances in Cryptology (CRYPTO 2000), pp.36-54, LNCS vol.1880, Springer-Verlag, 2000. Agrawal R., T.Imielinski, and A.Swami. "Mining Association Rules Between Sets of Items in Large Databases", Proceedings of the ACM SIGMOD Inter-national Conference on Management of Data, ACM SIGMOD, ACM, pp.207-216. Agrawal R. and R.Srikant, "Fast Algorithms for Mining Association Rules in Large Databases", Proceedings of the International Conference on Very Large Databases, pp.478 - 499.
 従って、本技術の目的は、一側面において、データを秘匿化したまま分析処理を適切に実施できるようにするための新規な技術を提供することである。
 本技術の第1の態様に係る秘匿データ処理方法は、(A)データベースにおけるマスク対象属性の数分のマスク値を、所定数セット生成し、マスクデータ格納部に格納するステップと、(B)マスク対象属性の属性値を含む複数のレコードの各々について、マスクデータ格納部に格納されている所定数セットのマスク値のいずれかを選択し、選択されたマスク値と対応するレコードにおけるマスク対象属性の属性値とについて予め定められた演算を実施することで複数のレコードのマスク化データを生成し、データ格納部に格納するマスク処理ステップとを含む。
 本技術の第2の態様に係る秘匿データ処理方法は、(A)データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている最も出現確率が高いセットのマスク値を読み出すステップと、(B)分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれるマスク化属性値と、読み出されたマスク値のうち該当するマスク値とについて予め定められたマスク演算の逆マスク演算を実施することでアンマスク化データを生成し、データ格納部に格納するステップとを含む。
 本技術の第3の態様に係る秘匿データ処理方法は、(A)分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれるマスク化属性値と、データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている各セットに含まれる該当マスク値とについて予め定められたマスク演算の逆マスク演算を実施することで、所定数のアンマスク分析データセットを生成し、分析データ格納部に当該分析データセットに対応付けられて格納されている当該分析データセットの出現頻度に対応付けて当該アンマスク分析データセットをアンマスク分析データ格納部に格納するステップと、(B)アンマスク分析データ格納部に格納されている同一のアンマスク分析データセットを集約して対応付けられている出現頻度を加算し、アンマスク分析データの種類と対応する出現頻度とを表すデータを、アンマスク分析データ格納部に格納するステップとを含む。
図1(a)及び(b)は、従来技術を説明するための図である。 図2は、従来技術を説明するための図である。 図3は、従来技術を説明するための図である。 図4は、従来技術を説明するための図である。 図5Aは、Aprioriアルゴリズムを説明するための図である。 図5Bは、Aprioriアルゴリズムを説明するための図である。 図5Cは、Aprioriアルゴリズムを説明するための図である。 図5Dは、Aprioriアルゴリズムを説明するための図である。 図5Eは、Aprioriアルゴリズムを説明するための図である。 図5Fは、Aprioriアルゴリズムを説明するための図である。 図5Gは、Aprioriアルゴリズムを説明するための図である。 図5Hは、Aprioriアルゴリズムを説明するための図である。 図6(a)及び(b)は、本技術の実施の形態を説明するための図である。 図7は、本実施の形態の効果を説明するための図である。 図8は、実施の形態のシステム概要図である。 図9は、ユーザ装置の機能ブロック図である。 図10は、初期処理部の処理を説明するための図である。 図11は、第1の実施の形態におけるマスク処理の処理フローを示す図である。 図12は、第1の実施の形態におけるアンマスク処理の処理フローを示す図である。 図13は、第1の実施の形態におけるアンマスク処理の処理フローを示す図である。 図14は、第1の実施の形態におけるアンマスク処理の概要を説明するための図である。 図15は、第2の実施の形態におけるマスク処理の処理フローを示す図である。 図16は、第2の実施の形態におけるアンマスク処理の概要を説明するための図である。 図17は、第2の実施の形態におけるアンマスク処理の処理フローを示す図である。 図18は、第2の実施の形態におけるアンマスク処理の処理フローを示す図である。 図19は、第2の実施の形態におけるアンマスク処理の処理フローを示す図である。 図20Aは、クロス集計を説明するための図である。 図20Bは、クロス集計を説明するための図である。 図20Cは、クロス集計を説明するための図である。 図21は、第3の実施の形態におけるアンマスク処理の概要を示すための図である。 図22は、コンピュータの機能ブロック図である。
 最初に、本技術の実施の形態において行われる処理について簡単に説明説明しておく。
 従来のマスク処理は、図2に示されるように、属性間でマスクする値に、それぞれ独立した乱数を与えていた。これにより、属性間の相関が分断され、適切な分析結果を得ることができなかった。これに対し、本技術の実施の形態においては図6(a)及び(b)に示されるように、複数のマスク値を含むマスク値集合をN個事前に用意しておき、これらの中から1つを、データベースの行毎に乱数によって選択し、当該マスク値集合でレコードをマスクする。
 マスク値集合とは、各マスク対象属性に対するマスク値を1つの集合として表したものである。例えば、図6(a)及び(b)に示すようにマスク対象属性が3種類の場合において、2種類のマスク値集合を乱数で切り替える場合、図6(b)に示されるように、マスク値集合として、{F1,G1,H1}と{F2,G2,H2}の2種類準備しておく。ただし、{F1,G1,H1}と{F2,G2,H2}は、全て定数である。F1及びF2は第1の属性を、G1及びG2は第2の属性を、H1及びH2は第3の属性をマスクするためのマスク値であり、行毎に{F1,G1,H1}又は{F2,G2,H2}のいずれかを乱数により選択して、属性値のマスクに用いる。
 {F1,G1,H1}と{F2,G2,H2}のように、属性間で連動させたマスク値を用いることで、属性間の相関をマスク値でシフトした状態で保存しながらマスク化することができるため、Aprioriアルゴリズム等を用いた場合でも分析精度の低下が発生しない。
 ここで分析精度の低下が抑制される理由を説明する。例えば、マスク化を行わない通常のテーブルに対してAprioriアルゴリズムを適用して数え上げを行った結果が{A,B,D}の出現頻度が10回であったとする。この際、2種類のマスク値集合{F1,G1,H1}と{F2,G2,H2}とを乱数で選択する方式を用いると、{A+F1,B+G1,D+H1}と{A+F2,B+G2,D+H2}とが合計10回出現する。乱数に偏りがない場合には、平均的にはそれぞれ5回ずつ出現する。
 このようなマスク化を解除し、アンマスク化した数え上げ結果を得るためには、{F1,G1,H1}と{F2,G2,H2}とを用いることになるが、これらの値を知っていれば、アンマスク化した数え上げ結果を得ることができる。後に、アンマスク化した数え上げ結果を得る手法を詳細に説明する。
 よって数え上げ結果に対して{F1,G1,H1}と{F2,G2,H2}との値をアンマスクのために用いるという特質を利用することで、これらの値を鍵として用いた安全なデータマイニングを実現することができる。すなわち、マスク化したままの状態で、分析処理を行うことで、オープンな環境下での分析を安全に実施しつつ、得られた分析結果に対して、アンマスクを行うことで、適切な分析結果を得ることができる。高い計算機の処理能力を必要とするデータの分析処理を、クラウドコンピューティング環境で実施することで、メインのシステムコストを低く抑えつつ、演算結果が出力された後の復号処理を、自社の閉じた安全な計算環境で実施することで、システムのコスト削減と、機密情報の漏洩防止を両立すること実現できる。
 さらに、本実施の形態では、オリジナルデータへの再変換のコストが少なくなっている。すなわち、従来手法によるPPDMを用いた場合、図3に示したように、マスクされたデータのテーブルと、ほぼ同サイズの、マスク値のテーブルを保持することになっていたのに対し、図7に模式的に示すように、マスク値のテーブルの代わりに、いずれのマスク値集合を選択したかを表すマスク選択データ及び使用したマスク値集合のデータを保持すればよい。マスク値のテーブルを保持する方法と異なり、マスク選択データを保持するためのデータ量は非常に小さいため、オリジナルデータへの再変換のコストを削減することができる。
[実施の形態1]
 図8に本実施の形態に係るシステムの構成図を示す。本実施の形態では、例えばインターネット等のネットワーク1を介して、データ分析サービスを提供するクラウドコンピューティング環境5が、複数のユーザに対して提供されている。各ユーザは、ネットワーク1にユーザ装置3及び7を接続して、当該ユーザ装置3及び7を用いてクラウドコンピューティング環境5を利用する。
 クラウドコンピューティング環境5には、ユーザ装置3及び7から受信したデータを蓄積するデータベース53と、各種の分析処理を実施する分析装置51とを有する。本実施の形態では、分析装置51で実施される分析処理は、上で述べたAprioriアルゴリズムの他クロス集計など各種の分析処理を含むが、従来から行われていたものと同じである。
 図9に、ユーザ装置3の機能ブロック図を示す。ユーザ装置3は、データ送信部31と、データ収集部41と、データ格納部32と、初期処理部33と、マスクデータ格納部35と、マスク処理部34と、データ受信部36と、分析データ格納部37と、マスク化データ格納部38と、アンマスク処理部39と、アンマスク分析データ格納部40と、オリジナルデータ格納部42とを有する。
 データ収集部41は、オリジナルのデータを収集する処理を行い、収集したオリジナルのデータをデータ格納部32に格納する。なお、このようにユーザのシステム内のデータを自動的に収集するようにしても良いし、ユーザの指示に応じて、データ格納部32に格納するようにしても良い。
 初期処理部33は、設定又はユーザの指示に応じてマスク値集合を生成して、マスクデータ格納部35に格納する。マスク処理部34は、マスクデータ格納部35に格納されているマスク値集合を用いてマスク処理を実施して、マスク化されたデータをデータ格納部32に格納する。オリジナルのデータを置換するように格納しても良いし、別領域に格納するようにしても良い。なお、マスク処理部34は、上で述べたマスク選択データについても、データ格納部32に格納する。また、マスク選択データについても別データ格納部に格納するようにしてもよい。データ送信部31は、マスク化データを、クラウドコンピューティング環境5におけるデータベース53にネットワーク1を介して格納する。
 一方、ユーザ装置3からの指示、ネットワーク1に接続されているユーザ端末からの指示、又は定期的に、分析装置51は、データベース53に格納されているマスク化データについて上で述べたように所定の分析処理を実施し、マスク化された分析データを生成して、ユーザ装置3に送信する。
 ユーザ装置3のデータ受信部36は、受信した分析データを分析データ格納部37に格納する。アンマスク処理部39は、分析データ格納部37に格納されているマスク化された分析データに対して、マスクデータ格納部35に格納されているマスク値集合を用いて以下で説明するアンマスク処理を実施し、処理結果をアンマスク分析データ格納部40に格納する。
 なお、本実施の形態の主旨ではないが、オリジナルデータを復元したい場合には、例えばデータ受信部36がデータベース53からマスク化データを読み出し、そのマスク化データをマスク化データ格納部38に格納する。アンマスク処理部39は、マスク化データ格納部38に格納されているマスク化データに対して、マスクデータ格納部35に格納されているマスク値集合及びデータ格納部32に格納されているマスク選択データを用いてマスク処理の逆演算を実施して、処理結果であるオリジナルデータをオリジナルデータ格納部42に格納する。本実施の形態では、オリジナルデータは、複数のレコードを含むデータベースのデータであるものとする。
 次に、本実施の形態に係る初期処理部33の処理について図10を用いて説明する。初期処理部33は、ユーザの指示又は設定に基づき、マスク対象属性の個数K及びマスク値集合の個数Nを特定する(ステップS1)。そして、初期処理部33は、カウンタcを1に初期化する(ステップS3)。さらに、初期処理部33は、k個のマスク値を乱数で生成し、マスク値集合Mask[c]={Mc,1,Mc,2,...Mc,k}として、マスクデータ格納部35に格納する(ステップS5)。
 そして、初期処理部33は、cを1インクリメントして(ステップS7)、cがN以下であるか判断する(ステップS9)。cがN以下であればステップS5に戻る。一方、cがNを超える場合には、処理を終了する。
 このような処理を実施することで、k個の乱数を含むマスク値集合がNセット生成されて、マスクデータ格納部35に格納されることになる。k個の乱数は、k個のマスク対象属性の何れかに用いられる。
 次に、図11を用いて、マスク処理部34の処理について説明する。まず、マスク処理部34は、データ格納部32に格納されているオリジナルデータに含まれるレコードのカウンタであるLを1に初期化する(ステップS11)。そして、マスク処理部34は、データ格納部32から、オリジナルデータのL行目におけるマスク対象属性の属性値Dを読み出す(ステップS13)。上でも述べたように、マスク対象属性はk個あるので、D={DataL,1,DataL,2,...DataL,k}を読み出すことになる。
 また、マスク処理部34は、1乃至N以下の範囲内で、ある分布に従って乱数rを生成する(ステップS15)。ある分布とは、r=sとなる確率が最も高くなるような分布である。これは以下で説明するアンマスク処理のためである。そして、マスク処理部34は、Lとrの対応関係をマスク選択データとして、データ格納部32に格納する(ステップS17)。これによってオリジナルデータを復元できるようになる。
 さらに、マスク処理部34は、マスク値集合Mask[r]を用いたマスク化を行うことでマスク化データDmを生成する(ステップS19)。Mask[r]={Mr,1,Mr,2,...Mr,k}をマスクデータ格納部35から読み出し、Dm={f(DataL,1,Mr,1),f(DataL,2,Mr,2),...f(DataL,k,Mr,k)}を生成する。
 ここで関数f(x,y)=zは、xとzとの関係が全単射の関係であれば、どのような関数であっても良い。すなわち、f(x,y)=zで示されるように、xからzを求める関数に対して、zからxを一意に決定するためのf-1(z,y)=xで示される逆関数f-1が存在すればよい。このような関数の一例としては、以下のようなものがある。
加算:z=f(x,y)=x+y,f-1(z,y)=z-y=x
加算剰余:z=f(x,y)=x+y(mod T),f-1(z,y)=z-y(mod T)=x
減算:z=f(x,y)=x-y,f-1(z,y)=z+y=x
減算剰余:z=f(x,y)=x-y(mod T),f-1(z,y)=z+y(mod T)=x
排他的論理和(XOR):z=f(x,y)=x XOR y,f-1(z,y)=z XOR y=x
乗算:z=f(x,y)=x*y,f-1(z,y)=z/y=x
乗算剰余:z=f(x,y)=x*y(mod T),f-1(z,y)=z*y-1(mod T)=x
 なお、Tは定数であり、例えば、T=232等のワード値のデータパターン数を表す定数が用いられる。上記関数は、他の関数であっても良いが、なるべく簡単な演算のものが好ましい。なぜなら、f(x,y)はデータベースをマスク化するための演算を表すが、データマイニングにおいては、用途によってはデータベースに入力するデータがリアルタイムに収集され、且つそのデータ量が膨大となるためである。例えば、世界中に配置された多数のセンシングデバイスから収集された観測データを、リアルタイムでマスク化しながらデータベースに格納する場合、f(x,y)の演算処理が大きな計算時間を伴うならば、マスク化処理に大きな負荷がかかり、データ収集のリアルタイム性が失われる。よって、マスク化処理の関数f(x,y)は、上記の事例に示されるような、簡単な演算処理が望ましい。
 その後、マスク処理部34は、データ格納部32において、オリジナルデータのL行目におけるマスク対象属性の属性値Dを、マスク化データDmで置換する(ステップS21)。ここでは、オリジナルデータをユーザ装置3内では保存しない場合を示しており、保存しておく場合にはステップS21で別の領域にマスク化データとマスク対象属性以外の属性の属性値を格納する。その後、マスク処理部34は、LはLを1インクリメントして(ステップS23)、Lが、オリジナルデータのレコード数Lmax以下であるか判断する(ステップS25)。LがLmax以下である場合にはステップS13に戻る。一方、LがLmaxを超えた場合には処理を終了する。
 このような処理を実施することで、各マスク対象属性の属性値をマスクすることができる。また、その際には、レコード内のマスク対象属性の属性値を、関連性を持たせたマスク化値でマスクするので、分析処理を適切に行うことができる。なお、オリジナルデータを復元するためのマスク選択データのサイズも小さいため、データ保持のためのデータ容量を削減することができる。
 なお、分析処理は、例えばAprioriアルゴリズムであり、ここでは説明を省略する。すなわち、マスク化したままで従来のとおり分析処理を実施しているので、分析結果についてもマスク化されたままである。
 次に、図12乃至図14を用いて、アンマスク時の処理について説明する。まず、データ受信部36は、分析装置51から分析処理の結果である分析データを受信し、分析データ格納部37に格納する(ステップS31)。分析データはマスク化されたままであり、Aprioriアルゴリズムであればアイテム集合とその出現頻度のデータを含む。
 そして、アンマスク処理部39は、分析データ格納部37に格納されている分析データの中から、出現頻度が高い上位U個のアイテム集合Ciを抽出する(ステップS33)。アイテム集合については以下のように表すものとする。
1={I1,1,I1,2,...I1,max_1
2={I2,1,I2,2,...I2,max_2

U={IU,1,IU,2,...IU,max_U
 また、アンマスク処理部39は、マスクデータ格納部35に格納されているマスク値集合のうち、出現頻度が最も高いマスク値集合Mask[s]を読み出す(ステップS35)。
 また、アンマスク処理部39は、アイテム集合についてのカウンタi及びアイテムについてのカウンタjを1に初期化する(ステップS37)。さらに、アンマスク処理部39は、アンマスク分析データDiに空集合をセットする(ステップS39)。そして、アンマスク処理部39は、アイテム集合Ciのj番目のアイテム値Ii,jを特定する(ステップS41)。処理は端子Aを介して図13の処理に移行する。
 図13の処理の説明に移行して、アンマスク処理部39は、Ii,jはマスク対象属性の属性値であるか判断する(ステップS43)。例えばAprioriアルゴリズムにおいて取り扱われるA、B、C等のアイテムは、上では簡略化のため属性値(例えば「性別」という属性に対する属性値は「男」及び「女」の2種類)として表現しているが、実際には、個々のアイテムは属性値だけでなく属性と属性値の組み合わせ、例えば「性別」=「男性」として表現しているため、マスク対象属性の属性値であるか否かを判断することができる。すなわち、「男性」部分はマスク化されているが、「性別」部分についてはマスク化されていない。
 Ii,jはマスク対象属性の属性値でない場合には、アンマスク処理部39は、Ii,jをIに設定する(ステップS45)。マスク対象属性でなければ、その属性値をアンマスクしなくても良いからである。その後ステップS51に移行する。
 一方、Ii,jはマスク対象属性の属性値である場合には、アンマスク処理部39は、Mask[s]において、Ii,jに係る属性のマスク値を特定し、Mに設定する(ステップS47)。上でも述べたように、Ii,jがいずれのマスク対象属性の属性値であるかが分かれば、対応するマスク値も特定できる。
 そして、アンマスク処理部39は、Ii,jをMでアンマスクし、アンマスク値をIに設定する(ステップS49)。すなわち、I=f-1(Ii,j,M)=f-1(f(Data,M),M)=Dataとなる。(但し、これは正しいマスク値集合が適用された場合である。
 その後、アンマスク処理部39は、集合DiにIを追加する(ステップS51)。そして、アンマスク処理部39は、jを1インクリメントし(ステップS53)、jがjの最大値であるjmax以下であるか判断する(ステップS55)。jがjmax以下であれば端子Bを介してステップS41に戻る。一方、jがjmaxを超えている場合には、アンマスク処理部39は、iを1インクリメントすると共に、jを1に初期化する(ステップS57)。そして、アンマスク処理部39は、iがU以下であるか判断する(ステップS59)。iがU以下であれば端子Cを介してステップ39に戻る。一方、iがUを超えている場合には、アンマスク処理部39は、集合Diをアンマスク分析データ格納部40に格納する(ステップS61)。なお、集合Diの出現頻度でソートした結果を格納するようにしても良い。なお、ユーザからの指示に応じて、アンマスク分析データ格納部40に格納されているデータは、ユーザに提示される。これで処理を終了する。
 このように、本実施の形態では、分析データに含まれるアイテム集合Ciがどのマスク値集合でマスク化されているか不明であるので、出現頻度が最も高いマスク値集合でアンマスクする。このような処理の有効性について以下に具体例で説明する。
 図14の左側に示すように、オリジナルデータに対してAprioriアルゴリズムで分析した結果、アイテム集合{A,B,D}が2000回、アイテム集合{A,B,C,E}が1900回、アイテム集合{A,D,E,F}が1800回検出されているとする。また、2つのマスク値集合が用いられており、Mask[1]={M1,1,M1,2,...M1,k}の出現割合が0.6で、Mask[2]={M2,1,M2,2,...M2,k}の出現割合が0.4であるものとする。
 このような場合、マスク化データに対する分析結果は、図14の中央に示すように、{A,B,D}については、{f(A,M1,1),f(B,M1,2),f(D,M1,4)}という形で検出されるか、{f(A,M2,1),f(B,M2,2),f(D,M2,4)}という形で検出される。上で述べたようなマスク値集合の出現割合であれば、おおよそ前者が1200回、後者が800回検出される。
 同様に、{A,B,C,E}については、{f(A,M1,1),f(B,M1,2),f(C,M1,3),f(E,M1,5)}という形で検出されるか、{f(A,M2,1),f(B,M2,2),f(C,M2,3),f(E,M2,5)}という形で検出される。上で述べたようなマスク値集合の出現割合であれば、おおよそ前者が1140回、後者が760回検出される。
 さらに、{A,D,E,F}については、{f(A,M1,1),f(D,M1,4),f(E,M1,5),f(F,M1,6)}という形で検出されるか、{f(A,M2,1),f(D,M2,4),f(E,M2,5),f(F,M2,6)}という形で検出される。上で述べたようなマスク値集合の出現割合であれば、おおよそ前者が1080回、後者が720回検出される。
 このように、マスク化の段階でマスク値の出現頻度に偏りがあり、Mask[1]の出現頻度が高い場合には、マスク化分析データ(例えばアイテム集合)においてもMask[1]でマスクされたマスク化分析データの出現頻度の順位は維持される。従って、マスク化分析データ(例えばアイテム集合)のうち出現頻度の上位のもの(ここではU=3)に対して、Mask[1]でアンマスクすれば、図14の右側に示すように、正しい結果が得られるようになる。出現頻度の正確な値は得られないが、順位は同じであり、データの傾向を把握する上では十分である。なお、マスク値集合の出現頻度の偏り方によっては順位についてもある程度の振れが発生する可能性があるが、傾向を把握する上では十分である。
 以上のような処理を実施すれば、データをマスクしたままで分析処理を行うことができ、その分析結果を適切にアンマスクして分析結果を活用することができるようになる。
 なお、上では最初にU個のアイテム集合に絞り込んだ上で、アンマスクを実施するようになっているが、出現頻度の値を対応付けて保持しておけば、アンマスク後に出現頻度の値でソートして、上位U個を採用するようにしても良い。
[実施の形態2]
 次に、第2の実施の形態について図15乃至図19を用いて説明する。なお、システム全体構成、クラウドコンピューティング環境5内の分析装置51及びデータベース53の構成、ユーザ装置3の構成については、実施の形態1と同じであるから、説明を省略する。また、初期処理の内容についても図10で説明したものと同じであるから、説明を省略する。
 次に、本実施の形態に係るマスク処理について図15を用いて説明する。
 まず、マスク処理部34は、データ格納部32に格納されているオリジナルデータに含まれるレコードのカウンタであるLを1に初期化する(ステップS61)。そして、マスク処理部34は、データ格納部32から、オリジナルデータのL行目におけるマスク対象属性の属性値Dを読み出す(ステップS63)。上でも述べたように、マスク対象属性はk個あるので、D={DataL,1,DataL,2,...DataL,k}を読み出すことになる。
 また、マスク処理部34は、1乃至N以下の範囲内で、均一な乱数rを生成する(ステップS65)。第1の実施の形態とは異なり、本実施の形態では、出現頻度が均一になるように乱数を発生させる。そして、マスク処理部34は、Lとrの対応関係をマスク選択データとして、データ格納部32に格納する(ステップS66)。これによってオリジナルデータを復元できるようになる。
 さらに、マスク処理部34は、マスク値集合Mask[r]を用いたマスク化を行うことでマスク化データDmを生成する(ステップS67)。Mask[r]={Mr,1,Mr,2,...Mr,k}をマスクデータ格納部35から読み出し、Dm={f(DataL,1,Mr,1),f(DataL,2,Mr,2),...f(DataL,k,Mr,k)}を生成する。
 本実施の形態では、関数f(x,y)=zは、xとzとの関係が全単射の関係であって且つf(a,b)≠f-1(a,b)を満たす関数となる。すなわち、加算、加算剰余、乗算、乗算剰余、減算、減算剰余は使用可能であるが、排他的論理和は利用不可能である。この理由については、アンマスク処理の説明において併せて説明する。その他については第1の実施の形態と同様である。
 その後、マスク処理部34は、データ格納部32において、オリジナルデータのL行目におけるマスク対象属性の属性値Dを、マスク化データDmで置換する(ステップS69)。ここでは、オリジナルデータをユーザ装置3内では保存しない場合を示しており、保存しておく場合にはステップS69で別の領域にマスク化データ及びマスク対象属性以外の属性の属性値を格納する。その後、マスク処理部34は、LはLを1インクリメントして(ステップS71)、Lが、オリジナルデータのレコード数Lmax以下であるか判断する(ステップS73)。LがLmax以下である場合にはステップS63に戻る。一方、LがLmaxを超えた場合には処理を終了する。
 なお、分析処理は、例えばAprioriアルゴリズムであり、ここでは説明を省略する。すなわち、マスク化したままで従来のとおり分析処理を実施しているので、分析結果についてもマスク化されたままである。
 次に、図16乃至図19を用いてアンマスク処理の説明を行う。ここでは、最初に第1の実施の形態との差異を具体例を用いて説明する。図14と同様に、オリジナルデータに対してAprioriアルゴリズムで分析した結果、アイテム集合{A,B,D}が2000回、アイテム集合{A,B,C,E}が1900回、アイテム集合{A,D,E,F}が1800回検出されているとする。また、2つのマスク値集合が用いられており、Mask[1]={M1,1,M1,2,...M1,k}の出現割合が0.5で、Mask[2]={M2,1,M2,2,...M2,k}の出現割合が0.5であるものとする。すなわち、出現頻度は同じである。
 このような場合、マスク化データに対する分析結果は、図16の右に示すように、{A,B,D}については、{A+M1,1,B+M1,2,D+M1,4}という形で検出されるか、{A+M2,1,B+M2,2,D+M2,4}という形で検出される。なお、マスク化の演算には加算を採用している。上で述べたようなマスク値集合の出現割合であれば、おおよそ前者が1000回、後者が1000回検出される。
 同様に、{A,B,C,E}については、{A+M1,1,B+M1,2,C+M1,3,E+M1,5}という形で検出されるか、{A+M2,1,B+M2,2,C+M2,3,E+M2,5}という形で検出される。上で述べたようなマスク値集合の出現割合であれば、おおよそ前者が950回、後者が950回検出される。
 さらに、{A,D,E,F}については、{A+M1,1,D+M1,4,E+M1,5,F+M1,6}という形で検出されるか、{A+M2,1,D+M2,4,E+M2,5,F+M2,6}という形で検出される。上で述べたようなマスク値集合の出現割合であれば、おおよそ前者が900回、後者が900回検出される。
 このようにマスク値集合の出現頻度に偏りがない場合には、正しくアンマスクできないと正しい分析結果を得られないが、どのマスク化分析データ(例えばアイテム集合)にどのマスク値集合が適用されているのかは不明である。従って、本実施の形態では、各マスク値集合を、全てのマスク化分析データ(例えばアイテム集合)に適用してみる。
 ここでは2つのマスク値集合が存在するので、2つのマスク値集合を3つのアイテム集合のそれぞれに適用してアンマスク化し、同じアンマスク化の結果が得られた場合には、その出現頻度を合計して最終的な分析結果として採用する。正しいマスク値集合を用いれば正しいアイテム集合が復元され、間違ったマスク値集合を用いれば誤ったアイテム集合が復元される。しかし、もともといずれかのマスク値集合でマスク化されているので、全てのマスク値集合を適用すれば、N回正しいアイテム集合が復元されるのに対し、間違ったマスク値集合を適用した場合には一致するようなアイテム集合が生成されず集約できない。そのため、出現頻度が高いアイテム集合に、正しい分析結果が浮かんでくることになる。
 図16の下段左側に示すように、Mask[1]={M1,1,M1,2,...M1,k}を適用すると、以下のような結果が得られる。
{A+M1,1-M1,1,B+M1,2-M1,2,D+M1,4-M1,4}={A,B,D}(1000回)
{A+M2,1-M1,1,B+M2,2-M1,2,D+M2,4-M1,4}(1000回)アンマスク失敗
{A+M1,1-M1,1,B+M1,2-M1,2,C+M1,3-M1,3,E+M1,5-M1,5}={A,B,C,E}(950回)
{A+M2,1-M1,1,B+M2,2-M1,2,C+M2,3-M1,3,E+M2,5-M1,5}(950回)アンマスク失敗
{A+M1,1-M1,1,D+M1,4-M1,4,E+M1,5-M1,5,F+M1,6-M1,6}={A,D,E,F}(900回)
{A+M2,1-M1,1,D+M2,4-M1,4,E+M2,5-M1,5,F+M2,6-M1,6}(900回)アンマスク失敗
 図16の下段右側に示すように、Mask[2]={M2,1,M2,2,...M2,k}を適用すると、以下のような結果が得られる。
{A+M1,1-M2,1,B+M1,2-M2,2,D+M1,4-M2,4}(1000回)アンマスク失敗
{A+M2,1-M2,1,B+M2,2-M2,2,D+M2,4-M2,4}={A,B,D}(1000回)
{A+M1,1-M2,1,B+M1,2-M2,2,C+M1,3-M2,3,E+M1,5-M2,5}(950回)アンマスク失敗
{A+M2,1-M2,1,B+M2,2-M2,2,C+M2,3-M2,3,E+M2,5-M2,5}={A,B,C,E}(950回)
{A+M1,1-M2,1,D+M1,4-M2,4,E+M1,5-M2,5,F+M1,6-M2,6}アンマスク失敗(900回)
{A+M2,1-M2,1,D+M2,4-M2,4,E+M2,5-M2,5,F+M2,6-M2,6}={A,D,E,F}(900回)
 以上の結果を集計すれば、{A,B,D}2000回、{A,B,C,E}1900回、{A,D,E,F}1800回という結果が得られ、オリジナルデータについてAprioriアルゴリズムを適用した場合と同様の結果が得られる。
 なお、ステップS65では、均一な乱数を発生させると述べたが、不均一な乱数であっても、上で述べた処理を行えば、正しくアンマスクされたアイテム集合は集約されるので、{A,B,D}2000回という結果は同じで、アンマスク失敗の場合に出現頻度にばらつきが発生するだけである。
 さらに、上でも述べたように、本実施の形態では排他的論理和が使用できない。すなわち、f(a,b)≠f-1(a,b)が要件である。
 上で使用した{A,B,D}の例を考えると、{A,B,D}2000回に対して、アンマスク失敗の場合には1000回にしかならないので、{A,B,D}が正しいことが分かる。
{A+M1,1-M2,1,B+M1,2-M2,2,D+M1,4-M2,4}(1000回)アンマスク失敗
{A+M2,1-M1,1,B+M2,2-M1,2,D+M2,4-M1,4}(1000回)アンマスク失敗
 しかしながら、f(a,b)=a XOR bで、f-1(a,b)=a XOR bであるとすると、以下のような結果が得られる。
{A,B,D}2000回
{A XOR M1,1 XOR M2,1,B XOR M1,2 XOR M2,2,D XOR M1,4 XOR M2,4}(1000回)アンマスク失敗
{A XOR M2,1 XOR M1,1,B XOR M2,2 XOR M1,2,D XOR M2,4 XOR M1,4}(1000回)アンマスク失敗
 このようにアンマスク失敗のケースが集約されて2000回となってしまって区別ができなくなる。このため排他的論理和を使用することができない。
 このような処理を行うために、図17乃至図19に示すような処理を実施する。まず、データ受信部36は、分析装置51から分析処理の結果である分析データを受信し、分析データ格納部37に格納する(ステップS81)。分析データはマスク化されたままであり、Aprioriアルゴリズムであればアイテム集合とその出現頻度のデータを含む。
 そして、アンマスク処理部39は、分析データ格納部37に格納されている分析データの中から、出現頻度が高い上位N×U個のアイテム集合Ci及び出現頻度Fiを抽出する(ステップS83)。アイテム集合Ciについては以下のように表すものとする。
1={I1,1,I1,2,...I1,max_1
2={I2,1,I2,2,...I2,max_2

U={IU*N,1,IU*N,2,...IU*N,max_U
 なお、マスク値集合がN個ある場合には、アイテム集合はN倍の数になるので、このことを勘案してN×U個抽出することにする。
 また、アンマスク処理部39は、マスクデータ格納部35に格納されているマスク値集合Mask[r](r=1乃至N)を読み出す(ステップS85)。本実施の形態では、N個のマスク値集合を用いるのでN個全て読み出す。
 また、アンマスク処理部39は、アイテム集合についてのカウンタi、アイテムについてのカウンタj、マスク値集合のカウンタrを1に初期化する(ステップS87)。さらに、アンマスク処理部39は、アンマスク分析データDi,rに空集合をセットする(ステップS89)。そして、アンマスク処理部39は、アイテム集合Ciのj番目のアイテム値Ii,jを特定する(ステップS91)。処理は端子Dを介して図18の処理に移行する。
 図18の処理の説明に移行して、アンマスク処理部39は、Ii,jはマスク対象属性の属性値であるか判断する(ステップS93)。ステップS43と同様に、マスク対象属性の属性値であるか否かを判断することができるものとする。
 Ii,jはマスク対象属性の属性値でない場合には、アンマスク処理部39は、Ii,jをIに設定する(ステップS95)。マスク対象属性でなければ、その属性値をアンマスクしなくても良いからである。その後ステップS101に移行する。
 一方、Ii,jはマスク対象属性の属性値である場合には、アンマスク処理部39は、Mask[r]において、Ii,jに係る属性のマスク値を特定し、Mに設定する(ステップS97)。上でも述べたように、Ii,jがいずれのマスク対象属性の属性値であるかが分かれば、対応するマスク値も特定できる。
 そして、アンマスク処理部39は、Ii,jをMでアンマスクし、アンマスク値をIに設定する(ステップS99)。すなわち、I=f-1(Ii,j,M)=f-1(f(Data,M),M)=Dataとなる。但し、アンマスクが成功するか失敗するかは、判断できない。
 その後、アンマスク処理部39は、集合Di,rにIを追加する(ステップS101)。そして、アンマスク処理部39は、jを1インクリメントし(ステップS103)、jがjの最大値であるjmax以下であるか判断する(ステップS105)。jがjmax以下であればステップS93に戻る。一方、jがjmaxを超えている場合には、アンマスク処理部39は、Di,rの出現頻度Fiを、頻度Gi,rに設定する(ステップS107)。rが変化してもiが同じであれば同じ値が設定されるが、これは図16の下段における左右で同じ値が設定される状況を示している。
 そして、アンマスク処理部39は、rを1インクリメントし、jを1に初期化する(ステップS109)。その後、アンマスク処理部39は、rはN以下であるか判断する(ステップS111)。rがN以下である場合には、端子Eを介してステップS91に戻る。一方、rがNを超えると、端子Fを介して図19の処理に移行する。
 図19の処理の説明に移行して、アンマスク処理部39は、iを1インクリメントし、j及びrを1に初期化する(ステップS113)。さらに、アンマスク処理部39は、iがN×U以下であるか判断する(ステップS115)。iがN×U以下である場合には端子Gを介してステップS89に戻る。一方、iがN×Uを超えた場合には、アンマスク処理部39は、同一のDi,rの出現頻度Gi,rを集計し、出現頻度が高い順にソートする(ステップS117)。
 そして、アンマスク処理部39は、Di,rのうち出現頻度が高い上位U個(場合によっては上位所定割合の個数)を、分析結果の集合Diとして、アンマスク分析データ格納部40に格納する(ステップS119)。上で述べた例では、{A,B,D}{A,B,C,E}{A,D,E,F}が、アンマスク分析データ格納部40に格納される。なお、ユーザからの指示に応じて、アンマスク分析データ格納部40に格納されているデータは、ユーザに提示される。
 以上のような処理を実施すれば、マスク処理においてマスク値集合を選択するために発生させる乱数についての制限が無くなり、さらに正確な分析結果を得ることができるようになる。
[実施の形態3]
 上でも述べたように分析処理はAprioriアルゴリズムだけではなく、集計処理であってもよい。集計処理は、単純な処理であるが、分析結果の持つ意味が人間にとって非常に理解が容易であることから、非常に幅広く用いられている分析法の1つである。特に、2属性の組み合わせの頻度を求めるクロス集計は、データに含まれる2つの属性間の相関関係を容易に可視化するための方法として非常に良く用いられる。
 一般的なクロス集計の例を図20A乃至図20Cに示す。図20Aでは、年収、購入額、職業の各属性が3通りの値を有する例を示している。すなわち、年収はa1,a2,a3により、購入額はb1,b2,b3により、職業はc1,c2,c3により分類されており、これらの属性間の相関をクロス集計によって可視化することができる。図20Bに示すように、「年収」と「購入額」のクロス集計を行う場合には、これらの2属性の組み合わせである{a1,b1}{a1,b2}{a1,b3}{a2,b1}{a2,b2}{a2,b3}{a3,b1}{a3,b2}{a3,b3}の出現頻度をカウントすると、図20Bに示されるようなデータが得られる。これをテーブル形式で見やすくすると、図20Cに示すようなテーブルとなる。
 このようなクロス集計の場合、Aprioriアルゴリズムと同様に、アイテムの組み合わせの出現頻度を計算するが、以下の点でAprioriアルゴリズムと異なる。
(a)2アイテムの組み合わせの出現頻度をカウント
 Aprioriアルゴリズムでは、設定次第で任意のアイテム個数の組み合わせをカウントする。
(b)出現頻度が高い又は低いアイテムの組み合わせ、いずれについてもカウント結果を表示
 Aprioriアルゴリズムでは、出現頻度が一定以上のアイテムのみカウント結果を残す
 以上の相違はあるが、クロス集計は最終的に2アイテムの出現頻度を集計する。
 このようなクロス集計を実施する場合の基本的な処理内容は、第2の実施の形態と同様である。すなわち、初期処理は第1の実施の形態と同じであり、マスク処理についても第2の実施の形態と同様である。但し、アンマスク処理については、図17のステップS83のみが異なる。すなわち、ステップS83では、出現頻度が高い上位N×U個のアイテム集合を抽出するが、クロス集計処理の場合には、全ての結果を用いるので、抽出処理を実施することはなく、全ての結果をそのまま用いる。
 なお、図21を用いて本実施の形態におけるアンマスク処理の概要を説明する。例えば、オリジナルデータのクロス集計を実施すると、図21の左側に示すように、{a1,b1}1000回、{a1,b2}600回、{a2,b1}560回、{a2,b2}800回が得られたものとする。2つのマスク値集合が用いられており、Mask[1]={M1,1,M1,2}の出現割合が0.5で、Mask[2]={M2,1,M2,2}の出現割合が0.5であるものとする。すなわち、出現頻度は同じである。
 一方、図21の右側に示すような、マスク化データに対するクロス集計処理の結果が得られたものとする。すなわち、{a1+M1,1,b1+M1,2}500回、{a1+M2,1,b1+M2,2}500回、{a1+M1,1,b2+M1,2}300回、{a1+M2,1,b2+M2,2}300回、{a2+M1,1,b1+M1,2}280回、{a2+M2,1,b1+M2,2}280回、{a2+M1,1,b2+M1,2}400回、{a2+M2,1,b2+M2,2}400回である。
 そして、第2の実施の形態と同様に、いずれのマスク値集合が適用されるかは不明であるから、図21の下段に示すように、各属性値組み合わせに対して各マスク値集合を適用する。具体的には、以下のとおりである。
 すなわち、図21の下段左側のように、Mask[1]={M1,1,M1,2}を適用すると、以下のような結果が得られる。
{a1+M1,1-M1,1,b1+M1,2-M1,2}={a1,b1}(500回)
{a1+M2,1-M1,1,b1+M2,2-M1,2}(500回)アンマスク失敗
{a1+M1,1-M1,1,b2+M1,2-M1,2}={a1,b2}(300回)
{a1+M2,1-M1,1,b2+M2,2-M1,2}(300回)アンマスク失敗
{a2+M1,1-M1,1,b1+M1,2-M1,2}={a2,b1}(280回)
{a2+M2,1-M1,1,b1+M2,2-M1,2}(280回)アンマスク失敗
{a2+M1,1-M1,1,b2+M1,2-M1,2}={a2,b2}(400回)
{a2+M2,1-M1,1,b2+M2,2-M1,2}(400回)アンマスク失敗
 図16の下段右側に示すように、Mask[2]={M2,1,M2,2}を適用すると、以下のような結果が得られる。
{a1+M1,1-M2,1,b1+M1,2-M2,2}(500回)アンマスク失敗
{a1+M2,1-M2,1,b1+M2,2-M2,2}={a1,b1}(500回)
{a1+M1,1-M2,1,b2+M1,2-M2,2}(300回)アンマスク失敗
{a1+M2,1-M2,1,b2+M2,2-M2,2}={a1,b2}(300回)
{a2+M1,1-M2,1,b1+M1,2-M2,2}(280回)アンマスク失敗
{a2+M2,1-M2,1,b1+M2,2-M2,2}={a2,b1}(280回)
{a2+M1,1-M2,1,b2+M1,2-M2,2}(400回)アンマスク失敗
{a2+M2,1-M2,1,b2+M2,2-M2,2}={a2,b2}(400回)
 以上の結果を集計すれば、{a1,b1}1000回、{a1,b2}600回、{a2,b1}560回,{a2,b2}800回という結果が得られ、オリジナルデータについてクロス集計処理を実施した場合と同様の結果が得られる。
 この場合も、ステップS65では、均一な乱数を発生させると述べたが、不均一な乱数であっても、上で述べた処理を行えば、正しくアンマスクされた属性値組み合わせは集約されるので、{a1,b1}1000回という結果は同じで、アンマスク失敗の場合に出現頻度にばらつきが発生するだけである。
 以上本技術の実施の形態について説明したが、本技術はこれに限定されるものではない。例えば、図8乃至図9の機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と一致しない。また、処理フローについても、処理結果が変わらない限り、ステップの順番を入れ替えたり、並列に実行しても良い場合もある。
 なお、上で述べたユーザ装置3及び7、分析装置51は、コンピュータ装置であって、図22に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
 以上述べた本実施の形態をまとめると、以下のようになる。
 本実施の形態における第1の態様に係る秘匿データ処理方法は、(A)データベースにおけるマスク対象属性の数分のマスク値を、所定数セット生成し、マスクデータ格納部に格納するステップと、(B)マスク対象属性の属性値を含む複数のレコードの各々について、マスクデータ格納部に格納されている所定数セットのマスク値のいずれかを選択し、選択されたマスク値と対応するレコードにおけるマスク対象属性の属性値とについて予め定められた演算を実施することで複数のレコードのマスク化データを生成し、データ格納部に格納するマスク処理ステップとを含む。
 このようにすれば、レコード内の属性間の相関関係を保持しつつマスク化データを生成することができるようになる。また、マスク化データから元のデータを復元するためのデータについても、マスク値の選択結果を保持すればよいので、復元のためのデータ量を削減できる。
 なお、上で述べたマスク処理ステップが、1から所定数までの乱数を均一に又は予め定められたピークを有する分布に従って生成することで、所定数セットのマスク値を選択するステップを含むようにしてもよい。後者のような乱数を用いれば、アンマスク処理を簡略化して簡略化した結果を得ることができるようになる。
 さらに、予め定められた演算が、属性値と演算結果との関係が全単射となるようになっている。このようにすれば、マスク化データの復元が可能となる。
 本実施の形態における第2の態様に係る秘匿データ処理方法は、(A)データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている最も出現確率が高いセットのマスク値を読み出すステップと、(B)分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれるマスク化属性値と、読み出されたマスク値のうち該当するマスク値とについて予め定められたマスク演算の逆マスク演算を実施することでアンマスク化データを生成し、データ格納部に格納するステップとを含む。
 このようにすることで、高速にマスク化データの分析結果を簡略化した形で得ることができるようになる。
 本技術の第3の態様に係る秘匿データ処理方法は、(A)分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれるマスク化属性値と、データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている各セットに含まれる該当マスク値とについて予め定められたマスク演算の逆マスク演算を実施することで、所定数のアンマスク分析データセットを生成し、分析データ格納部に当該分析データセットに対応付けられて格納されている当該分析データセットの出現頻度に対応付けて当該アンマスク分析データセットをアンマスク分析データ格納部に格納するステップと、(B)アンマスク分析データ格納部に格納されている同一のアンマスク分析データセットを集約して対応付けられている出現頻度を加算し、アンマスク分析データの種類と対応する出現頻度とを表すデータを、アンマスク分析データ格納部に格納するステップとを含む。
 このような処理を実施することで正確な分析結果を復元できるようになる。
 なお、第2の態様に係る秘匿データ処理方法は、分析処理を実施したコンピュータから受信した複数の分析データセットのうち出現頻度が上位所定数又は上位所定割合の複数の分析データセットを、分析データ格納部に格納するステップを含むようにしても良い。分析処理の種類によっては、抽出処理を実施することが好ましい場合もある。Aprioriアルゴリズムの場合には抽出するようにしてもよい。
 また、予め定められた演算が、属性値と演算結果との関係が全単射となる場合もある。
 なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD-ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
 

Claims (13)

  1.  データベースにおけるマスク対象属性の数分のマスク値を、所定数セット生成し、マスクデータ格納部に格納するステップと、
     前記マスク対象属性の属性値を含む複数のレコードの各々について、前記マスクデータ格納部に格納されている前記所定数セットのマスク値のいずれかを選択し、選択されたマスク値と対応するレコードにおけるマスク対象属性の属性値とについて予め定められた演算を実施することで前記複数のレコードのマスク化データを生成し、前記データ格納部に格納するマスク処理ステップと、
     を、コンピュータに実行させるための秘匿データ処理プログラム。
  2.  前記マスク処理ステップが、
     1から前記所定数までの乱数を均一に又は予め定められたピークを有する分布に従って生成することで、前記所定数セットのマスク値を選択するステップ
     を含む、請求項1記載の秘匿データ処理プログラム。
  3.  前記予め定められた演算が、前記属性値と演算結果との関係が全単射となる
     請求項1又は2記載の秘匿データ処理プログラム。
  4.  データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている最も出現確率が高いセットのマスク値を読み出すステップと、
     分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれる前記マスク化属性値と、読み出されたマスク値のうち該当するマスク値とについて予め定められたマスク演算の逆マスク演算を実施することでアンマスク化データを生成し、データ格納部に格納するステップと、
     を、コンピュータに実行させるための秘匿データ処理プログラム。
  5.  分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれる前記マスク化属性値と、データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている各前記セットに含まれる該当マスク値とについて予め定められたマスク演算の逆マスク演算を実施することで、前記所定数のアンマスク分析データセットを生成し、前記分析データ格納部に当該分析データセットに対応付けられて格納されている当該分析データセットの出現頻度に対応付けて当該アンマスク分析データセットをアンマスク分析データ格納部に格納するステップと、
     前記アンマスク分析データ格納部に格納されている同一のアンマスク分析データセットを集約して対応付けられている出現頻度を加算し、前記アンマスク分析データの種類と対応する出現頻度とを表すデータを、前記アンマスク分析データ格納部に格納するステップと、
     を、コンピュータに実行させるための秘匿データ処理プログラム。
  6.  分析処理を実施したコンピュータから受信した複数の分析データセットのうち出現頻度が上位所定数又は上位所定割合の複数の分析データセットを、前記分析データ格納部に格納するステップ
     をさらに、前記コンピュータに実行させるための請求項4又は5記載の秘匿データ処理プログラム。
  7.  前記予め定められた演算が、前記属性値と演算結果との関係が全単射となる
     請求項4乃至6のいずれか1つ記載の秘匿データ処理プログラム。
  8.  データベースにおけるマスク対象属性の数分のマスク値を、所定数セット生成し、マスクデータ格納部に格納するステップと、
     前記マスク対象属性の属性値を含む複数のレコードの各々について、前記マスクデータ格納部に格納されている前記所定数セットのマスク値のいずれかを選択し、選択されたマスク値と対応するレコードにおけるマスク対象属性の属性値とについて予め定められた演算を実施することで前記複数のレコードのマスク化データを生成し、前記データ格納部に格納するマスク処理ステップと、
     を含み、コンピュータにより実行される秘匿データ処理方法。
  9.  データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている最も出現確率が高いセットのマスク値を読み出すステップと、
     分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれる前記マスク化属性値と、読み出されたマスク値のうち該当するマスク値とについて予め定められたマスク演算の逆マスク演算を実施することでアンマスク化データを生成し、データ格納部に格納するステップと、
     を含み、コンピュータにより実行させる秘匿データ処理方法。
  10.  分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれる前記マスク化属性値と、データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部に格納されている各前記セットに含まれる該当マスク値とについて予め定められたマスク演算の逆マスク演算を実施することで、前記所定数のアンマスク分析データセットを生成し、前記分析データ格納部に当該分析データセットに対応付けられて格納されている当該分析データセットの出現頻度に対応付けて当該アンマスク分析データセットをアンマスク分析データ格納部に格納するステップと、
     前記アンマスク分析データ格納部に格納されている同一のアンマスク分析データセットを集約して対応付けられている出現頻度を加算し、前記アンマスク分析データの種類と対応する出現頻度とを表すデータを、前記アンマスク分析データ格納部に格納するステップと、
     を含み、コンピュータにより実行させる秘匿データ処理方法。
  11.  データベースにおけるマスク対象属性の数分のマスク値を、所定数セット格納するマスクデータ格納部と、
     前記マスク対象属性の属性値を含む複数のレコードの各々について、前記マスクデータ格納部に格納されている前記所定数セットのマスク値のいずれかを選択し、選択されたマスク値と対応するレコードにおけるマスク対象属性の属性値とについて予め定められた演算を実施することで前記複数のレコードのマスク化データを生成し、前記データ格納部に格納するマスク処理部と、
     を有する情報処理装置。
  12.  データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部と、
     前記マスクデータ格納部に格納されている最も出現確率が高いセットのマスク値を読み出し、分析データ格納部に格納されており且つマスク化属性値を含む複数の分析データセットの各々について、当該分析データセットに含まれる前記マスク化属性値と、読み出されたマスク値のうち該当するマスク値とについて予め定められたマスク演算の逆マスク演算を実施することでアンマスク化データを生成し、データ格納部に格納するアンマスク処理部と、
     を有する情報処理装置。
  13.  データベースにおけるマスク対象属性の数分のマスク値を所定数セット格納するマスクデータ格納部と、
     マスク化属性値を含む複数の分析データセットを格納する分析データ格納部と、
     前記分析データ格納部に格納されておいる前記複数の分析データセットの各々について、当該分析データセットに含まれる前記マスク化属性値と、前記マスクデータ格納部に格納されている各前記セットに含まれる該当マスク値とについて予め定められたマスク演算の逆マスク演算を実施することで、前記所定数のアンマスク分析データセットを生成し、前記分析データ格納部に当該分析データセットに対応付けられて格納されている当該分析データセットの出現頻度に対応付けて当該アンマスク分析データセットをアンマスク分析データ格納部に格納し、前記アンマスク分析データ格納部に格納されている同一のアンマスク分析データセットを集約して対応付けられている出現頻度を加算し、前記アンマスク分析データの種類と対応する出現頻度とを表すデータを、前記アンマスク分析データ格納部に格納するアンマスク処理部と、
     を有する情報処理装置。
PCT/JP2011/056594 2011-03-18 2011-03-18 秘匿データ処理方法、プログラム及び装置 WO2012127572A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2011/056594 WO2012127572A1 (ja) 2011-03-18 2011-03-18 秘匿データ処理方法、プログラム及び装置
JP2013505634A JP5594427B2 (ja) 2011-03-18 2011-03-18 秘匿データ処理方法、プログラム及び装置
US14/029,978 US20140019467A1 (en) 2011-03-18 2013-09-18 Method and apparatus for processing masked data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/056594 WO2012127572A1 (ja) 2011-03-18 2011-03-18 秘匿データ処理方法、プログラム及び装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/029,978 Continuation US20140019467A1 (en) 2011-03-18 2013-09-18 Method and apparatus for processing masked data

Publications (1)

Publication Number Publication Date
WO2012127572A1 true WO2012127572A1 (ja) 2012-09-27

Family

ID=46878769

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/056594 WO2012127572A1 (ja) 2011-03-18 2011-03-18 秘匿データ処理方法、プログラム及び装置

Country Status (3)

Country Link
US (1) US20140019467A1 (ja)
JP (1) JP5594427B2 (ja)
WO (1) WO2012127572A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2947597A4 (en) * 2013-01-16 2016-01-06 Fujitsu Ltd METHOD AND DEVICE FOR PRODUCING CONFIDENTIAL DATA
JP2016081168A (ja) * 2014-10-14 2016-05-16 株式会社エヌ・ティ・ティ・データ 雑音発生装置、雑音発生方法及びプログラム
JP2018500686A (ja) * 2014-12-29 2018-01-11 中国▲銀▼▲聯▼股▲ふん▼有限公司 マーチャントのビジネスサークル情報の確定
JP2019144405A (ja) * 2018-02-20 2019-08-29 学校法人東京理科大学 入力者装置、演算支援装置、装置、秘匿演算装置、及びプログラム
JP2022044737A (ja) * 2018-02-20 2022-03-17 惠市 岩村 入力者装置、演算支援装置、装置、秘匿演算装置、及びプログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8978153B1 (en) 2014-08-01 2015-03-10 Datalogix, Inc. Apparatus and method for data matching and anonymization
EP3198446A4 (en) 2014-09-25 2018-04-04 Hewlett-Packard Enterprise Development LP A report comprising a masked value
US10333899B2 (en) 2014-11-26 2019-06-25 Lexisnexis, A Division Of Reed Elsevier Inc. Systems and methods for implementing a privacy firewall
CN107209787B (zh) * 2015-02-11 2022-02-08 维萨国际服务协会 提高专用加密数据的搜索能力
US20170019312A1 (en) * 2015-07-17 2017-01-19 Brocade Communications Systems, Inc. Network analysis and management system
US10628604B1 (en) * 2016-11-01 2020-04-21 Airlines Reporting Corporation System and method for masking digital records
US11070523B2 (en) * 2017-04-26 2021-07-20 National University Of Kaohsiung Digital data transmission system, device and method with an identity-masking mechanism
US10819710B2 (en) * 2017-09-29 2020-10-27 Jpmorgan Chase Bank, N.A. Systems and methods for privacy-protecting hybrid cloud and premise stream processing
CN112119441B (zh) * 2018-05-17 2024-03-22 日本电信电话株式会社 秘密交叉累计系统、秘密计算装置、秘密交叉累计方法、以及记录介质
FR3101980B1 (fr) * 2019-10-11 2021-12-10 St Microelectronics Grenoble 2 Processeur
FR3101981B1 (fr) * 2019-10-11 2021-11-12 St Microelectronics Grenoble 2 Extraction et insertion de mots binaires
FR3101983B1 (fr) 2019-10-11 2021-11-12 St Microelectronics Grenoble 2 Détermination d'un bit indicateur
FR3101982B1 (fr) 2019-10-11 2024-03-08 St Microelectronics Grenoble 2 Détermination d'un bit indicateur
US11907268B2 (en) * 2021-02-10 2024-02-20 Bank Of America Corporation System for identification of obfuscated electronic data through placeholder indicators
US11580249B2 (en) 2021-02-10 2023-02-14 Bank Of America Corporation System for implementing multi-dimensional data obfuscation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007287102A (ja) * 2006-04-20 2007-11-01 Mitsubishi Electric Corp データ変換装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920855A (en) * 1997-06-03 1999-07-06 International Business Machines Corporation On-line mining of association rules
JP3431593B2 (ja) * 2000-10-31 2003-07-28 株式会社東芝 コンテンツ生成装置、電子透かし検出装置、コンテンツ生成方法、電子透かし検出方法及び記録媒体
US7185017B1 (en) * 2002-04-10 2007-02-27 Compuware Corporation System and method for selectively processing data sub-segments using a data mask
US7177864B2 (en) * 2002-05-09 2007-02-13 Gibraltar Analytics, Inc. Method and system for data processing for pattern detection
US20040139043A1 (en) * 2003-01-13 2004-07-15 Oracle International Corporation Attribute relevant access control policies
US20050198043A1 (en) * 2003-05-15 2005-09-08 Gruber Harry E. Database masking and privilege for organizations
WO2005122034A1 (ja) * 2004-06-14 2005-12-22 Olympus Corporation データマネージメントシステム
US20060074897A1 (en) * 2004-10-04 2006-04-06 Fergusson Iain W System and method for dynamic data masking
US8364711B2 (en) * 2006-05-09 2013-01-29 John Wilkins Contact management system and method
US7974942B2 (en) * 2006-09-08 2011-07-05 Camouflage Software Inc. Data masking system and method
US7877398B2 (en) * 2007-11-19 2011-01-25 International Business Machines Corporation Masking related sensitive data in groups
US8055668B2 (en) * 2008-02-13 2011-11-08 Camouflage Software, Inc. Method and system for masking data in a consistent manner across multiple data sources
JP2009205269A (ja) * 2008-02-26 2009-09-10 Osaka Univ 頻出変化パターン抽出装置
US7882134B2 (en) * 2008-04-28 2011-02-01 Oracle International Corporation Non-repeating random values in user specified formats and character sets
EP2189925A3 (en) * 2008-11-25 2015-10-14 SafeNet, Inc. Database obfuscation system and method
WO2010135316A1 (en) * 2009-05-18 2010-11-25 Telcordia Technologies, Inc. A privacy architecture for distributed data mining based on zero-knowledge collections of databases
US10102398B2 (en) * 2009-06-01 2018-10-16 Ab Initio Technology Llc Generating obfuscated data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007287102A (ja) * 2006-04-20 2007-11-01 Mitsubishi Electric Corp データ変換装置

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
ALEXANDRE EVFIMIEVSKI ET AL.: "Privacy Preserving Mining of Association Rules", KDD'02 PROCEEDINGS OF THE EIGHTH ACM SIGKDD INTERNATIONAL CONFERENCE ON KNOWLEDGE DISCOVERY AND DATA MINING, 2002, pages 217 - 228, Retrieved from the Internet <URL:http://portal.acm.org/citation.cfm?id=775080> [retrieved on 20110408] *
JUN SAKUMA ET AL.: "Privacy-Preserving Data Mining", JOURNAL OF JAPANESE SOCIETY FOR ARTIFICIAL INTELLIGENCE, vol. 24, no. 2, 1 March 2009 (2009-03-01), pages 283 - 294 *
KAZUYO NARITA ET AL.: "Association Rule Mining for a Generalized Noisy Data Model", IPSJ SIG NOTES (2006-DBS-140(II)), vol. 2006, no. 78, 14 July 2006 (2006-07-14), pages 383 - 390 *
KAZUYO NARITA ET AL.: "Noise-Iri Data karano Hinshutsu Item Shugo no Suitei", DEWS2006 RONBUNSHU, 30 June 2006 (2006-06-30), pages 1 - 8, Retrieved from the Internet <URL:http://www.ieice.org/iss/de/DEWS/DEWS2006/doc/6A-oil.pdf> [retrieved on 20110408] *
KOICHI ITO ET AL.: "Data Masking and Traceability for Inter-Cloud Data Security", IEICE TECHNICAL REPORT (IN2010-118 TO 143), vol. 110, no. 373, 13 January 2011 (2011-01-13), pages 65 - 70 *
RYOSUKE OGAYA ET AL.: "Koritsuteki na Privacy Hogo Data Mining Shuho no Teian", COMPUTER SECURITY SYMPOSIUM 2007 RONBUNSHU, vol. 2007, no. 10, 31 October 2007 (2007-10-31), pages 379 - 384 *
SHARIQ J. RIZVI ET AL.: "Maintaining Data Privacy in Association Rule Mining", VLDB'02 PROCEEDINGS OF THE 28TH INTERNATIONAL CONFERENCE ON VERY LARGE DATA BASES, pages 682 - 693, Retrieved from the Internet <URL:http://portal.acm.org/citation.cfm?id= 1287428> [retrieved on 20110408] *
SHINTARO URABE ET AL.: "A Collusion-Resistant Approach to Distributed Privacy-Preserving Data Mining", IPSJ SIG NOTES (2006-DSM-41), vol. 2006, no. 42, 11 May 2006 (2006-05-11), pages 33 - 37 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2947597A4 (en) * 2013-01-16 2016-01-06 Fujitsu Ltd METHOD AND DEVICE FOR PRODUCING CONFIDENTIAL DATA
US9747467B2 (en) 2013-01-16 2017-08-29 Fujitsu Limited Anonymized data generation method and apparatus
JP2016081168A (ja) * 2014-10-14 2016-05-16 株式会社エヌ・ティ・ティ・データ 雑音発生装置、雑音発生方法及びプログラム
JP2018500686A (ja) * 2014-12-29 2018-01-11 中国▲銀▼▲聯▼股▲ふん▼有限公司 マーチャントのビジネスサークル情報の確定
JP2019144405A (ja) * 2018-02-20 2019-08-29 学校法人東京理科大学 入力者装置、演算支援装置、装置、秘匿演算装置、及びプログラム
JP2022044737A (ja) * 2018-02-20 2022-03-17 惠市 岩村 入力者装置、演算支援装置、装置、秘匿演算装置、及びプログラム
JP7041951B2 (ja) 2018-02-20 2022-03-25 惠市 岩村 入力者装置、演算支援装置、及びプログラム
JP7240037B2 (ja) 2018-02-20 2023-03-15 惠市 岩村 入力者装置、演算支援装置、装置、秘匿演算装置、及びプログラム

Also Published As

Publication number Publication date
US20140019467A1 (en) 2014-01-16
JPWO2012127572A1 (ja) 2014-07-24
JP5594427B2 (ja) 2014-09-24

Similar Documents

Publication Publication Date Title
JP5594427B2 (ja) 秘匿データ処理方法、プログラム及び装置
Dasu et al. Exploratory data mining and data cleaning
US8103611B2 (en) Architectures, systems, apparatus, methods, and computer-readable medium for providing recommendations to users and applications using multidimensional data
US8590049B2 (en) Method and apparatus for providing anonymization of data
US20110138312A1 (en) Method and system for accelerated data quality enhancement
CN106022800A (zh) 一种用户特征数据的处理方法和装置
Huang et al. Why does collaborative filtering work? transaction-based recommendation model validation and selection by analyzing bipartite random graphs
Popova et al. A behavioral perspective on social choice
JP5772563B2 (ja) 情報処理方法、装置及びプログラム
JP7256766B2 (ja) 推測根拠分析装置及び推測根拠分析方法
Wang et al. Umbra: a visual analysis approach for defense construction against inference attacks on sensitive information
Li A Bayesian approach for estimating and replacing missing categorical data
JP2017054230A (ja) 集計分析装置、集計分析方法、及びプログラム
Mohammadnezhad et al. An effective model for improving the quality of recommender systems in mobile e-tourism
Sabah et al. A new fast entropy‐based method to generate composite centrality measures in complex networks
Rathod et al. A survey on association rule mining for market basket analysis and apriori algorithm
CN112734165B (zh) 智能化的功能展示方法、装置、设备及存储介质
CN112016975A (zh) 产品筛选方法、装置、计算机设备及可读存储介质
Estivill-Castro et al. Can on-line social network users trust that what they designated as confidential data remains so?
US20210319001A1 (en) Data space scalability for algorithm traversal
Koenecke et al. Tutorial: Sequential Pattern Mining in R for Business Recommendations
CN109189805A (zh) 行为处理方法、装置、电子设备及计算机可读存储介质
Batbarai et al. Survey for rule pruning in association rule mining for removing redundancy
KR102251586B1 (ko) 설정값의 집중도를 이용하여 설정값을 설정하기 위한 사용자 인터페이스를 조정하는 방법, 장치 및 시스템
Sommer et al. Recommender systems: the case of repeated interaction in matrix factorization

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013505634

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11861589

Country of ref document: EP

Kind code of ref document: A1