WO2015059918A1 - データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法 - Google Patents

データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法 Download PDF

Info

Publication number
WO2015059918A1
WO2015059918A1 PCT/JP2014/005321 JP2014005321W WO2015059918A1 WO 2015059918 A1 WO2015059918 A1 WO 2015059918A1 JP 2014005321 W JP2014005321 W JP 2014005321W WO 2015059918 A1 WO2015059918 A1 WO 2015059918A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
statistical processing
devices
arithmetic
original data
Prior art date
Application number
PCT/JP2014/005321
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 US15/030,106 priority Critical patent/US20160246981A1/en
Publication of WO2015059918A1 publication Critical patent/WO2015059918A1/ja

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Definitions

  • the present invention relates to a technique for performing statistical processing on data to be concealed regarding personal privacy and the like while maintaining the confidentiality of the data and providing the result.
  • Non-Patent Document 1 As a technique for analyzing data and finding useful knowledge while protecting privacy information, a technique called privacy protection data mining (PPDM) has been developed (see Non-Patent Document 1) and stored data. As a technique for preventing secret information from leaking even if it leaks to a third party, a technique called secret sharing has been proposed (see Patent Documents 1 to 3).
  • PPDM privacy protection data mining
  • JP 2013-20314 A Special table 2012-530391 gazette Japanese Patent Laid-Open No. 2005-250866
  • PPDM assumes the existence of a reliable third-party organization, and there is a method of passing the original data to be concealed to the third-party organization, but such a reliable third-party organization is actually difficult to implement.
  • a reliable third-party organization is actually difficult to implement
  • the damage will be enormous, so this is not a realistic solution.
  • a method that does not use a reliable third-party organization is to obtain the result of analysis of a set of original data outside the organization while keeping the original data of the organization secret from the outside.
  • An external person who performs the processing performs analysis processing by receiving data that has been subjected to some concealment processing without passing the original data.
  • various methods have been developed in order to prevent an external person from obtaining original data concealed in the organization from the passed data.
  • the security of the data to be concealed is maintained by combining the PPDM and the technique for holding the original data in an encrypted state.
  • the original data can be obtained by decryption as long as the computing power and time are large depending on the encryption strength. Therefore, the risk of information leakage remains as it cannot be eliminated.
  • the secret sharing technique divides secret information into several pieces (N pieces) of data and holds the pieces of data in a distributed manner, so that K pieces of N pieces (K ⁇ N) of pieces of data are held. Even if they are leaked to a third party and collected, secret information cannot be restored and information leakage is prevented.
  • the present invention does not hold or store original data, so that the original data is not retained, and the risk of leakage of information to be concealed is reduced, while the statistics on the set of original data are
  • the purpose is to make it possible to obtain the result of the processing.
  • a data concealment statistical processing system includes a plurality of data input devices each including means for acquiring original data to be concealed, and a predetermined calculation based on a plurality of input data. Obtained by the plurality of data input devices by using a plurality of arithmetic devices provided with means for performing the calculation using the partial data of the original data as the input data. And a data processing device including means for obtaining a result of statistical processing based on a plurality of original data without obtaining the original data.
  • the original data acquired by each data input device is partial data and distributed and passed to a plurality of arithmetic devices. None of the arithmetic devices acquire original data, and the data processing device does not acquire original data. Therefore, by not retaining the original data, it is possible to reduce the risk of leaking information that should be kept secret.
  • each arithmetic device performs an operation on partial data, and the data processing device can obtain the result of statistical processing for a set of original data by using the operation results from a plurality of arithmetic devices. Become.
  • the data input device divides the original data according to a secret ratio so that the original data is restored when all the parts are combined, and generates a predetermined number of partial data; You may make it provide a means to transmit each of a predetermined number of partial data to a corresponding arithmetic device among the several arithmetic devices by the protected communication path.
  • the secret ratio is desirably different for each data input device.
  • the operation management is simplified if the number of partial data generated by each data input device is the same for all the original data belonging to the set subject to one statistical process, but it is different. You may allow it.
  • the arithmetic device includes means for transmitting a calculation result obtained by performing a predetermined calculation based on the plurality of partial data received from the plurality of data input devices to the data processing device,
  • the data processing device may include means for performing predetermined statistical processing based on a plurality of the calculation results received from the plurality of calculation devices.
  • each of the M arithmetic devices receives partial data from the N data input devices, transmits a result calculated from the N partial data to the data processing device, and the data processing device By processing the calculation result, it is possible to obtain the result of performing statistical processing on the N original data.
  • each arithmetic unit receives N pieces of data corresponding to N pieces of original data, but it is partial data and does not include information on the original data, and the data processing unit constitutes the original data.
  • M operation results corresponding to the M partial data are received, but it is information about a set of original data and does not include information of individual original data. Therefore, the result of statistical processing is obtained without causing each arithmetic device and the data processing device to acquire any original data.
  • the predetermined number of partial data includes one generated from values of the respective parts obtained by dividing the original data
  • the predetermined calculation performed by the calculation device is a sum of the plurality of partial data.
  • the predetermined statistical process performed by the data processing apparatus may include a process of calculating the sum of the predetermined number of calculation results.
  • the predetermined number of partial data is generated based on a value obtained by dividing each part of the original data, and generated based on a value obtained by multiplying two different parts.
  • the predetermined calculation performed by the arithmetic unit includes at least one of a sum of the plurality of partial data and a sum of squares
  • the predetermined statistical processing performed by the data processing prime minister includes the predetermined number of operations A process of calculating a sum of squares for a result corresponding to the value of each part of the result, and a process of calculating a sum for a value corresponding to a value obtained by multiplying the parts among the predetermined number of calculation results It may be included.
  • the predetermined number of partial data is obtained by multiplying two parts different from one generated from a value obtained by squaring each part obtained by dividing the original data.
  • the predetermined calculation performed by the calculation device includes a calculation of a sum of the plurality of partial data, and the predetermined statistical processing performed by the data processing device includes the predetermined number It is also possible to include a process for calculating the sum of the calculation results.
  • each arithmetic device calculates the sum and the square sum of the received data regardless of what the data received from the data input device is, and the two arithmetic results are sent to the data processing device.
  • the data processing apparatus selects a calculation result from the data processing apparatus according to the statistical processing to be performed (for example, the sum of squares is used for the 1st to mth arithmetic apparatuses). The result may be selected, and the sum of the (m + 1 to 2m) -th arithmetic devices may be selected as the calculation target.
  • the plurality of data input devices include the same number of first data input devices and second data input devices corresponding to each other, and the first data input device and the second data input device.
  • the transmission performed by the apparatus is to transmit each of the predetermined number of partial data to a corresponding predetermined number of arithmetic apparatuses among the predetermined number of squares of the arithmetic apparatuses.
  • the predetermined operation includes an operation for obtaining an inner product of the partial data sequence from the first data input device and the partial data sequence from the second data input device, and the statistical processing performed by the data processing device includes the It may include a process of calculating a total sum of the predetermined number of squares received from the predetermined number of square arithmetic devices.
  • N Y N can be obtained without obtaining the original data.
  • At least one result of covariance calculation, correlation coefficient calculation, and regression analysis is obtained.
  • a configuration obtained as a result of the final statistical processing may be employed.
  • the data input device determines the secret ratio using a random number generated when the original data is divided, and erases the storage of the secret ratio after the division. You may make it further provide a means.
  • the secret ratio is known.
  • the risk of information leakage that the original data can be restored can be reduced. If the secret ratio is randomly determined each time, the possibility of the ratio being estimated is reduced, and if the secret ratio is stored, the possibility of information leakage is reduced.
  • the arithmetic device stores each of the plurality of partial data received from the plurality of data input devices in association with the data input device that has transmitted the partial data, and the data input device; In response to a request indicating the association, a means for returning, among the plurality of partial data, partial data stored in association with the data input device may be further provided.
  • the original data acquired by the data input device is immediately divided and distributed and stored in a plurality of arithmetic devices, so that the data input device also does not hold the original data, and information to be concealed leaks. Risk can be reliably reduced.
  • the device having an association with the data input device acquires all of the partial data generated by dividing the original data from the corresponding arithmetic device among the plurality of arithmetic devices, and the original Means for restoring data may be provided.
  • a device having an association with the data input device is configured to store the ratio for one of each portion obtained by dividing the original data, and to generate the original data by dividing it.
  • the data processing device instructs each of the plurality of data input devices to indicate which of the plurality of arithmetic devices the partial data should be transmitted to, and each of the plurality of arithmetic devices.
  • each of the plurality of data input devices includes means for determining to which of the plurality of arithmetic devices the partial data should be transmitted, and each of the plurality of arithmetic devices includes the plurality of arithmetic devices.
  • Means may be provided for determining which of the plurality of partial data received from the data input device should be subjected to a predetermined calculation.
  • each data input device itself can select a computation device as a transmission destination, and each computation device itself can select partial data to be included in the statistical processing target.
  • each computation device itself can select partial data to be included in the statistical processing target.
  • it is possible not to handle information related to each original data, and it is possible to realize further data safety.
  • the number of the plurality of arithmetic devices is equal to or larger than a predetermined number that is the number of partial data obtained from one original data, and the predetermined number of partial data It is good to transmit to each different arithmetic unit.
  • the plurality of arithmetic devices belong to services provided by different operators, and the data processing device is operated by an operator different from the plurality of arithmetic devices. May be.
  • an operator that is the main body of statistical processing operates and manages a data processing device, and provides statistical processing results using data storage and calculation services provided by existing cloud service providers. It becomes possible to perform services.
  • a statistical processing result providing server device is a server device for a service that provides a result of statistical processing based on a plurality of original data without acquiring original data to be concealed. And means for communicating with a plurality of arithmetic units each having means for performing a predetermined calculation based on a plurality of input data, and each of the plurality of arithmetic units has partial data of the original data as the input data. Means for performing computation and obtaining the result of the computation, and means for performing predetermined statistical processing based on the computation results from the plurality of computing devices.
  • the plurality of partial data are generated by dividing the original data according to a secret ratio so that the original data is restored when all the parts are combined.
  • the server device since the original data is converted into partial data and distributed to a plurality of arithmetic devices, none of the arithmetic devices acquire the original data, and the server device does not acquire the original data. Therefore, by not retaining the original data, it is possible to reduce the risk of leaking information that should be kept secret. On the other hand, it is possible to obtain a result of statistical processing for a set of original data by using a result of the server device performing a calculation with partial data input to a plurality of calculation devices. Further, even if a third party acquires some partial data, the original data is not restored, so that the confidentiality of the original data can be maintained. It should be noted that the secret ratio exists only in the device that divides the original data, at least at the time of division, and is unknown to anyone or only the owner of the original data.
  • Means for giving an instruction to each of the plurality of arithmetic devices may be further provided so that the above calculation is performed.
  • the server device further includes means for receiving an identification number of the original data to which the partial data stored in the arithmetic device belongs from each of the plurality of arithmetic devices for the confirmation. Also good.
  • the server device looks over the plurality of arithmetic devices and confirms whether or not all partial data are in a state of being obtained without acquiring individual partial data from each arithmetic device. Is possible.
  • the server device associates a set of identification numbers of the confirmed original data with a sequence number and notifies the plurality of arithmetic devices, and the confirmed original data after the previous notification.
  • the server device can share information with each arithmetic device.
  • the server device obtains a result obtained by causing the plurality of arithmetic devices to perform the predetermined operation for a certain original data set, and then, the server device is limited in number to the certain original data set.
  • the server device For the set to which the original data is added, there may be further provided means for prohibiting acquisition of a result obtained by causing the plurality of calculation devices to perform the predetermined calculation.
  • the server device By prohibiting the acquisition of calculation results at such time, the server device performs a malicious operation such as substantially acquiring individual partial data from each calculation device and restoring the original data. It is possible to ensure that there is no such thing.
  • the predetermined statistical processing is performed from among a means for communicating with a plurality of data input devices each having a means for acquiring the original data and generating the partial data, and an available arithmetic device.
  • a data input device is configured to divide the original data in accordance with a secret ratio so that the original data is restored when all parts are combined with the means for acquiring the original data to be concealed
  • a plurality of pieces of input data to a corresponding arithmetic unit among a plurality of arithmetic units each having a unit for generating a predetermined number of partial data and a unit for performing a predetermined calculation based on a plurality of input data.
  • each of the plurality of arithmetic devices uses a result obtained by performing the predetermined calculation based on partial data from the plurality of data input devices, by using a server device different from the plurality of arithmetic devices, A result of statistical processing based on the plurality of original data acquired by the plurality of data input devices is obtained while the original data is kept secret.
  • the server device while reducing the risk of leakage of original data to be concealed, the server device causes a plurality of arithmetic devices to perform computations using partial data as input, and uses the results to obtain original data. It is possible to obtain the result of the statistical processing for the set of.
  • the original data may be restored based on the predetermined number of partial data acquired by the authorized person in the corresponding computing device.
  • the original owner wants to acquire original data later, instead of storing the original data in the data input device, it acquires partial data that is distributed and stored in multiple arithmetic devices. Since the original data can be restored, it can be realized, so that it is possible to reliably reduce the risk of leakage of information to be kept secret.
  • the data input device may further include means for storing information for accessing the server device and means for receiving information for specifying the corresponding arithmetic device from the server device. .
  • the data input device can divide the original data into several parts, generate partial data, and pass to which multiple arithmetic devices, etc. It becomes possible to carry out according to the designation from the server device.
  • a means for giving identification information that is unique in the system to the partial data, and a value obtained based on the identification information is within a range that each of the plurality of arithmetic devices is in charge of. According to which range it belongs, you may make it further provide the means to identify the said corresponding arithmetic unit.
  • the data input device can determine the calculation device that is the transmission destination of each partial data by itself, and can prevent the server device from handling information related to each original data.
  • the server device can prevent the server device from handling information related to each original data.
  • An arithmetic device is a means for communicating with a server device for a service that provides a result of statistical processing based on a plurality of said original data, without acquiring original data to be kept secret And means for receiving partial data belonging to each of the plurality of original data from a plurality of data input devices each having a means for concealing the original data inside the device, and predetermined based on the plurality of input data Means for performing the operation.
  • the server device performs predetermined statistical processing based on the calculation results from the plurality of arithmetic devices, and the arithmetic device is configured to output the plurality of partial data received from the plurality of data input devices.
  • the inventions of the data concealment statistical processing system, the statistical processing result providing server device and the data input device described above are general-purpose as inventions of other elements, methods of the entire system or individual devices, respectively.
  • a program or a recording medium on which the program is recorded
  • a program or a recording medium on which the program is recorded
  • this invention is also valid. Some of them are illustrated below.
  • a program according to an example in accordance with the principle of the present invention is a program for causing a computer having a function of communicating with another computer to operate as a data processing device in a data confidential statistical processing system.
  • the other computer there are a plurality of arithmetic devices each having a means for performing a predetermined arithmetic operation based on a plurality of input data, and the data processing device does not acquire original data to be concealed, A result of statistical processing based on the original data is provided.
  • the program causes the computer to cause each of the plurality of arithmetic devices to perform an operation using the partial data of the original data as the input data, and to obtain a result of the operation; and the plurality of arithmetic devices Means for performing a predetermined statistical process based on the calculation result from the above, and the plurality of pieces of partial data are stored in secret so that the original data is restored when all the portions are combined. It is generated by dividing according to the ratio.
  • a program according to another example according to the principle of the present invention operates a computer having a function of acquiring original data to be concealed and a function of communicating with another computer as a data input device in a data concealment statistical processing system. It is a program.
  • the other computer there are a plurality of arithmetic units each having means for performing a predetermined calculation based on a plurality of input data.
  • the program divides the original data according to a secret ratio so as to restore the original data when all the parts are combined with the computer, and generates the predetermined number of partial data;
  • Each of a plurality of partial data is provided as one of the plurality of input data to the corresponding arithmetic device among the plurality of arithmetic devices via a protected communication path, and
  • Each of the plurality of arithmetic devices uses a result obtained by performing the predetermined calculation based on partial data from the plurality of data input devices by using a server device different from the plurality of arithmetic devices, thereby
  • the result of statistical processing based on a plurality of the original data acquired by the data input device is the confidentiality of the original data. Mom is determined.
  • a program according to still another example in accordance with the principle of the present invention is a program for causing a computer having a function of communicating with another computer to operate as one of a plurality of arithmetic units in the data confidential statistical processing system.
  • a server device for a service that provides a result of statistical processing based on a plurality of the original data without obtaining the original data to be concealed;
  • a plurality of data input devices having means for concealing them.
  • the program includes means for receiving, from the plurality of data input devices, partial data belonging to each of the plurality of original data, and means for performing a predetermined calculation based on the plurality of input data.
  • any of the partial data obtained from one original data has been received by one of the arithmetic devices corresponding to the partial data.
  • Means for selecting, as the input data, information for which information indicating that it is registered, and means for transmitting the result of the predetermined calculation for the selected input data to the server device The server device performs predetermined statistical processing based on the calculation results from the plurality of calculation devices.
  • each of a plurality of data input devices including means for acquiring original data to be concealed restores the original data when all the parts are combined.
  • each of a plurality of arithmetic devices including means for outputting a predetermined number of partial data obtained by dividing the original data according to a secret ratio and performing a predetermined operation based on a plurality of input data, The partial data output from each of the plurality of data input devices is used as the input data to output the result of the operation, and the data processing device outputs the result of the operation output from each of the plurality of arithmetic devices.
  • Statistical processing based on a plurality of original data acquired by the plurality of data input devices The results obtained without obtaining the original data.
  • This system is a system for performing cloud-type data processing in consideration of privacy protection.
  • the original data when collecting the original data from the data generation source, the original data is divided so as to be concealed (hereinafter sometimes referred to as “secret division”). Then, the original data is not delivered anywhere, and the divided data is delivered to a plurality of clouds for storage and analysis processing. In this way, even if data leaks from a single cloud, the original data cannot be restored therefrom.
  • each cloud service provider tries to derive original data by combining data on multiple clouds in order to reduce the possibility of data leaking from multiple clouds at once. In order to prevent the problem from occurring, it is preferable to use separate operators. Which cloud service to use can be determined by the analysis provider or the owner of the data generation source.
  • the analysis provider may be different from the owner of the data generation source, for example, one company may store and store data from multiple data generation sources owned by one company using a third party cloud service.
  • the analysis company may be the company that owns the data generation source.
  • the owner of each data generation source is a different individual and is different from the analysis company and the user company provided with the statistical processing result by the analysis company.
  • the statistical data remains in a state where the original data does not exist anywhere, remains in a secretly divided state, and a plurality of data generated by the secretly divided from one original data is dispersed without being collected in one place. Since the result of processing is required, safety can be sufficiently increased.
  • FIG. 1 shows an example of this system in which each original data is divided into two and the sum of N original data is obtained.
  • each data input device 10-1 to 10-N divides each original data x 1 to x N and uploads them to the cloud service facilities 30-1 and 30-2.
  • N is an integer equal to or greater than 2, and may be a number of billions or trillions.
  • each data input device 10-i uploads the partial data x 1i to the first cloud service facility 30-1, and uploads the partial data x 2i to the second cloud service facility 30-2.
  • Each cloud service facility 30-j stores the uploaded data. Upload timing from each data input device may be arbitrary, and at a certain point, N partial data ⁇ x 11 , x 12 ,..., X 1N ⁇ are stored in the first cloud service facility 30-1. The N cloud partial data ⁇ x 21 , x 22 ,..., X 2N ⁇ are stored in the second cloud service facility 30-2.
  • the first cloud service facility 30-1 transmits the result f (X 1 ) obtained by calculating the sum of the N partial data x 1i to the statistical processing result providing server 50
  • the second cloud service facility 30-1 30-2 transmits the result f (X 2 ) obtained by calculating the sum of the N pieces of partial data x 2i to the statistical processing result providing server 50.
  • N is an enormous number
  • processing using computer resources on the cloud is also an important advantage.
  • the statistical processing result providing server 50 performs processing for obtaining the sum of the transmitted results. Since the value of “f (X 1 ) + f (X 2 )” is equal to the sum of i of (x 1i + x 2i ) from 1 to N, the total sum of the original data x i is obtained. Users of services provided by this system refer only to the results of statistical analysis.
  • the statistical processing result providing server 50 obtains only f (X i ), which is the result of performing the calculation processing on the N partial data from each cloud, and does not know the individual partial data. It is possible to keep the confidentiality of the original data high for the analysis business operator who operates the providing server 50.
  • FIG. 1 shows an example in which each original data is divided into two, but FIG. 2 shows the present system in which each original data is divided into m (a number larger than 2) and the sum of N original data is obtained.
  • m a number larger than 2
  • N original data
  • the ratio of division is determined randomly by generating a random number in the device each time, and the ratio is kept secret.
  • each x 1i , x 2i ,..., X mi has complete secrecy with respect to x i , and for example, the values of x 1i to x (m ⁇ 1) i are known. However, if the value of x mi is not known, x i cannot be restored. Therefore, even if (m ⁇ 1) data leaks at the same time, confidentiality is maintained.
  • Each data input device 10-i uploads partial data x ji corresponding to each of the m cloud service facilities 30-j.
  • the upload timing may be independent for each data input device, but at some point, N partial data ⁇ x j1 , x j2 ,..., X jN ⁇ are stored in any cloud service facility 30-j. It becomes a state.
  • each cloud service facility 30-j transmits a result f (X j ) obtained by calculating the sum of N partial data x ji to the statistical processing result providing server 50.
  • the statistical processing result providing server 50 performs processing for obtaining the sum of the transmitted results. Since the value of “f (X 1 ) + f (X 2 ) +... + F (X m )” is equal to the sum of i of (x 1i + x 2i +... + X mi ) from 1 to N, the original data This is the sum of x i .
  • FIG. 3 shows an example of this system in which each original data is divided into two and the square sum of N original data is obtained.
  • the process for obtaining the sum of x i with i ranging from 1 to N is described as f (X i ).
  • the process for obtaining the same sum is represented by f ⁇ (X i ).
  • a process for obtaining the square sum of x i with i ranging from 1 to N is described as f S (X i ).
  • the statistical processing result providing server 50 has the sum of squares f S (X 1 ) from the first cloud service facility 30-1 and the sum of squares from the second cloud service facility 30-2. Describes the point of obtaining the square sum f S (X) of N original data using f S (X 2 ) and the sum f ⁇ (X 12 ) from the third cloud service facility 30-3 Although it has to, at the same time, using the sum f sigma (X 1) from the first cloud service equipment 30-1, the sum f sigma from the second cloud service facilities 30-2 and (X 2), It is also possible to obtain a sum f ⁇ (X) of N original data.
  • the statistical processing result providing server 50 instructs each data input device 10-i whether to generate and upload x 1i x 2i as shown in FIG. 3 or only x 1i and x 2i as shown in FIG. You may make it do.
  • each data input device 10-i uploads the partial data x 1i to the first cloud service facility 30-1, uploads the partial data x 2i to the second cloud service facility 30-2, and The partial data x 1i x 2i is uploaded to the cloud service facility 30-3. In this case, even if data leaks in one of the three clouds, the original data is not restored.
  • Each cloud service facility 30-j stores the uploaded data. Upload timing from each data input device may be arbitrary, and at a certain point, N partial data ⁇ x 11 , x 12 ,..., X 1N ⁇ are stored in the first cloud service facility 30-1. N partial data ⁇ x 21 , x 22 ,..., X 2N ⁇ are stored in the second cloud service facility 30-2 and stored in the third cloud service facility 30-3. N partial data ⁇ x 11 x 21 , x 12 x 22 ,..., X 1N x 2N ⁇ are stored.
  • the first cloud service facility 30-1 calculates the result f ⁇ (X 1 ) and f S (X 1 ), which are the sum and square sum of N partial data x 1i , respectively, as the statistical processing result
  • the second cloud service facility 30-2 transmits the results f ⁇ (X 2 ) and f S (X 2 ) obtained by calculating the sum and square sum of the N pieces of partial data x 2i respectively.
  • the third cloud service facility 30-3 transmits to the statistical processing result providing server 50, and the third cloud service facility 30-3 calculates the sum and square sum of the N partial data x 1i x 2i , respectively, f ⁇ (X 12 ) and f S (X 12 ) is transmitted to the statistical processing result providing server 50.
  • the statistical processing result providing server 50 selects f S (X 1 ), f S (X 2 ), and f ⁇ (X 12 ) from among the transmitted results, and about f ⁇ (X 12 ). Is doubled, and the process of adding all of them is performed. Since the value of “f S (X 1 ) + 2f ⁇ (X 12 ) + f S (X 2 )” is equal to the sum of i of (x 1i + x 2i ) 2 from 1 to N, the original data x i The sum of 2 (that is, the sum of squares of x i ) is obtained.
  • the statistical processing result providing server 50 selects f ⁇ (X 1 ) and f ⁇ (X 2 ) from the transmitted results and performs the process of obtaining the sum, The sum of the original data x i is obtained. In either case, the result of f S (X 12 ) from the third cloud is not used, and when only the sum of squares is obtained, the result of f ⁇ (X j ) from the first and second clouds is used. I can't. Further, when only the sum is obtained in the configuration of FIG. 3, the result of f S (X j ) from the first and second clouds is not used, and any result from the third cloud is not used. .
  • each cloud service facility 30-j further states whether the uploaded data is a part x ji obtained by dividing x i or x ji x ki obtained by multiplying two parts. Even if it is original data or partial data, the process of simply calculating the sum and square sum of i from 1 to N for the input data is performed uniformly. . Therefore, from the contents of the calculation processing performed in each cloud, the contents of the statistical processing performed in the statistical processing result providing server 50, the meaning of the data stored in each cloud, and the like are not inferred, and safety is ensured. It is possible to increase it further.
  • FIG. 3 shows an example in which each original data is divided into two pieces
  • FIG. 4 shows a case where each original data is divided into m pieces (a number larger than 2) and the square sum of N pieces of original data is obtained.
  • An example of this system is shown.
  • processing is performed in a distributed manner on 2 m different independent clouds. In this case, even if data flows out in (m ⁇ 1) of 2m clouds, the original data is not restored.
  • x ′ 1i x 1i x 2i + x 1i x 3i + x 1i x 4i
  • x ′ 2i x 2i x 1i + x 2i x 3i + x 2i x 4i
  • x ′ 3i x 3i x1i + x3i x2i + x3i x4i
  • x'4i x4i x1i + x4i x2i + x4i x3i
  • the upload timing may be independent for each data input device, but at a certain point in time, N pieces of partial data with i ranging from 1 to N are stored in any cloud service facility 30-j.
  • ⁇ (X ′ i ) is selected, and the process of adding all of these is performed.
  • the confidence interval for m-1.96 ⁇ s / N 1/2 ⁇ ⁇ ⁇ m + 1.96 ⁇ s / N 1/2 Can be estimated. As described above, the average of the population can be estimated.
  • Estimating the confidence interval for the population ratio is as follows.
  • the sample ratio r eg, r out of N people answered YES
  • r f ⁇ (X)
  • the 95% confidence interval of the population ratio R is , r-1.96 ⁇ (r (1-r) / N) 1/2 ⁇ R ⁇ r + 1.96 ⁇ (r (1-r) / N) 1/2
  • This can be applied to statistical data of YES / NO or selection formula (or machine on / off).
  • F test (s A 2 / ⁇ A 2 ) / (s B 2 / ⁇ B 2 ) is F with degrees of freedom k A and k B.
  • 2D ANOVA can be performed for both cases with and without repetition from the simple extension of the one-dimensional ANOVA described above. This is effective in confirming the effect of a combination of multiple initiatives.
  • this system can also be applied to statistical analysis for a plurality of elements.
  • this system can also be applied to statistical analysis for a plurality of elements.
  • inner products covariances, correlation coefficients, regression equations, determination coefficients, and the like.
  • FIG. 5 shows an example of the present system in which the original data x i and y i of the two elements are divided into two and the inner product of N pairs of original data is obtained.
  • FIG. 5 shows an example in which each original data is divided into two. However, each original data is divided into m pieces (a number larger than 2) and distributed on m 2 independent different clouds for processing. It is of course possible to obtain the inner product of N pairs of original data by doing so.
  • Each data input device 10-i uploads the partial data x 1i to the first and second cloud service facilities 30-1 and 30-2 and then to the third and fourth cloud service facilities 30-3 and 4.
  • the partial data x 2i is uploaded, and each data input device 20-i uploads the partial data y 1i to the first and third cloud service facilities 30-1, 3 and the second and fourth cloud service facilities. Upload the partial data y 2i to 30-2,4.
  • Each cloud service facility 30-j stores the uploaded data.
  • the timing of uploading from each data input device may be arbitrary, and at a certain point, the first cloud service facility 30-1 has N partial data ⁇ x 11 , x 12 ,. , N pieces of partial data of x 1N ⁇ and second elements ⁇ y 11, y 12, ...
  • the second cloud service equipment 30-2 N of the first element Partial data ⁇ x 11 , x 12 ,..., X 1N ⁇ and N partial data ⁇ y 21 , y 22 ,..., Y 2N ⁇ of the second element are stored, and the third cloud service
  • the facility 30-3 includes N partial data ⁇ x 21 , x 22 ,..., X 2N ⁇ of the first element and N partial data ⁇ y 11 , y 12 ,. ⁇ Is stored, and the N partial data ⁇ x 21 of the first element is stored in the fourth cloud service facility 30-3.
  • X 22 ,..., X 2N ⁇ and N partial data ⁇ y 21 , y 22 ,..., Y 2N ⁇ of the second element are stored.
  • the first cloud service facility 30-1 transmits the result f P (X 1 , Y 1 ) obtained by calculating the inner product of N pairs of partial data x 1i and y 1i to the statistical processing result providing server 50.
  • the second cloud service facility 30-2 transmits the result f P (X 1 , Y 2 ) obtained by calculating the inner product of the N pairs of partial data x 1i and y 2i to the statistical processing result providing server 50
  • the third cloud service facility 30-2 transmits the result f P (X 2 , Y 1 ) obtained by calculating the inner product of N pairs of partial data x 2i and y 1i to the statistical processing result providing server 50
  • the fourth cloud service The facility 30-4 transmits the result f P (X 2 , Y 2 ) obtained by calculating the inner product of the N pairs of partial data x 2i and y 2i to the statistical processing result providing server 50.
  • the statistical processing result providing server 50 performs a process of summing all the transmitted results.
  • the values of “f P (X 1 , Y 1 ) + f P (X 1 , Y 2 ) + f P (X 2 , Y 1 ) + f P (X 2 , Y 2 )” are (x 1i + x 2i ) and ( Since the value obtained by multiplying y 1i + y 2i ) is equal to the sum of i from 1 to N, the inner product of the original data x i and y i is obtained.
  • Cov XY is expressed as m X and m Y as the sample average of X and Y, respectively.
  • the correlation coefficient CC XY is obtained by taking s X and s Y as sample deviations of X and Y, respectively.
  • CC XY Cov XY / s X s Y As required.
  • s X [(f S (X) ⁇ ⁇ f ⁇ (X) ⁇ 2 ) / N] 1/2
  • s Y [(f S (Y) ⁇ ⁇ f ⁇ (Y) ⁇ 2 ) / N] 1/2 .
  • FIG. 6 shows an example of a configuration that can be adopted by the system described with reference to FIGS.
  • Data input devices 10-1 to 10-N (not shown, but 20-1 to 20-N for obtaining the inner product have the same configuration), cloud service facilities 30-1 to 30-M, statistics
  • the processing result providing server 50 is connected via a network 40 (for example, the Internet).
  • each data input device 10 and each cloud service facility 30 between each cloud service facility 30 and the statistical processing result providing server 50, between the statistical processing result providing server 50 and each data input device 10, It is good also as a structure with a separate communication network (for example, a wireless network, a wired network, etc.).
  • a separate communication network for example, a wireless network, a wired network, etc.
  • each communication between each data input device 10 and each cloud service facility 30 includes only divided data, but all communication from a certain data input device to m cloud service facilities is performed. If intercepted, the original data can be restored, so for example, it is necessary to use encryption technology with the same level of security as that used in online shopping, electronic payment, commercial transactions, net banking, etc. preferable.
  • each data input device 10 includes a data acquisition unit 110, a secret division unit 120 that secretly divides the acquired original data, and a partial data obtained by the secret division on each encrypted communication path.
  • An upload unit 130 for uploading to the cloud service facility 30 is provided.
  • the data acquisition unit 110 may be one in which a device automatically generates original data, a human may input original data, or may extract original data from another database or the like.
  • control unit 140 included in each data input device 10 determines the number of data divisions in the secret division unit 120 and the type of partial data to be generated. Control. The control unit 140 also controls the upload destination of each partial data in the upload unit 130 in accordance with an instruction from the management server 500.
  • these controls may be performed according to the control information embedded in the control unit 140 without communicating with the statistical processing result providing server 50. .
  • Each cloud service facility 30 includes a data storage unit 310 that stores data uploaded from each data input device 10, and a total sum (322), a square sum (324), and an inner product (326) for a large number of stored partial data.
  • the calculation part 320 which performs arithmetic processing, such as these, is provided. Any of the arithmetic processing can be performed with the amount of calculation O (N) for the number N of data input devices, and even at a practical level for a large number of units such as billions or trillions.
  • the system can be scaled (expanded).
  • calculation unit 320 it is sufficient for the calculation unit 320 to have only the necessary arithmetic processing according to the use of the present system. For example, when it is determined in advance that the calculation unit 320 is not used for the purpose of obtaining the inner product, You do not have to prepare.
  • various arithmetic units may be configured in the calculation unit 320 in preparation for expansion of usage, and an arithmetic unit to be used for each statistical process may be selected in accordance with an instruction from the management server 500.
  • the control unit 330 included in each cloud service facility 30 is a timing at which the calculation unit 320 performs predetermined calculation processing according to an instruction from the management unit (management server) 500 in the statistical processing result providing server 50, and the target of the calculation processing.
  • the data to be read from the data storage unit 310 is specified.
  • Each data input device 10 is configured, for example, by installing a program for this method in a device having a computing function.
  • the device may be a general-purpose computer or a dedicated device manufactured by incorporating a program in advance.
  • the part that temporarily stores the original data before the confidential division the part that uses the secret ratio for the confidential division, etc., in particular, it should be provided in a module with enhanced hardware or software security. Also good.
  • each data input device 10 is a dedicated device and has a small storage capacity
  • the address (URL) of the manager (management server 500) that performs statistical processing is minimized in order to minimize the initial information embedded in the device.
  • an IP address an IP address
  • a key public key method or common key method for encrypting communication with the manager as initial information, and the address of each cloud 30 is obtained using the manager. May be.
  • Each cloud service facility 30 can be realized by using generally provided cloud service facilities.
  • the statistical processing result providing server 50 can be configured, for example, by installing a program for this method on a general-purpose server, and the statistical processing result providing service itself may be realized as a calculation service on the cloud. .
  • FIG. 7 shows an example of the internal configuration of the statistical processing result providing server 50.
  • the statistical processing result providing server 50 provides, together with the statistical processing unit 570, a management unit (management server) 500 having a function of controlling each data input device 10 and each cloud service facility 30, and a result of the statistical processing to the user.
  • a result providing interface 590 is provided.
  • the function of the management server 500 for each statistical process can be provided, each of which will be referred to as a manager.
  • the manager can be identified by assigning a different URL to each manager.
  • the manager 50-1 that manages the focused statistical process 1 functions as the management server 500.
  • the management server 500 that realizes the procedure of this example includes, for example, each unit illustrated in FIG.
  • the statistical processing result providing service provider estimates the number of clouds used for the statistical processing and the calculation resources (number, CPU, memory, etc.) required for each cloud, Design the system. Then, a necessary number of independent cloud service providers are selected and contracted for cloud resources. After that, if the following procedure is performed and the necessary statistical processing results are obtained, the data is initialized (completely deleted) and the cloud resource is canceled in order to eliminate the risk of information leakage.
  • FIG. 8 shows a procedure of a preparation stage performed between the notification unit 510 of the manager and each data input device 10.
  • Each data input device makes an inquiry to a predetermined manager [1], and the manager selects two clouds in the example of FIG. 1 from the group of M available clouds [2]. Is notified to each data input device [3].
  • the manager also notifies each data input device of information indicating which type of data is uploaded to which cloud [3].
  • the manager notifies the data input device of the content notified to each original data ID (in the case of 1 device 1 data, it may be the ID of the data input device).
  • the manager notifies the data input device of the content notified to each original data ID (in the case of 1 device 1 data, it may be the ID of the data input device).
  • FIG. 9 shows a [5] [6] procedure in which each data input device 10 uploads each partial data obtained by the confidential division [4] to each cloud service facility according to the content notified from the manager.
  • Each data input device 10 uploads identification information such as a manager address and data ID in addition to the partial data.
  • [5] and [6] may be performed simultaneously or with a time difference, and the execution timings of [4] to [6] in each data input device 10 may be independent. That is, it is not necessary to synchronize between the data input devices, and [4] to [6] are executed at the timing when the original data is acquired by each data input device 10.
  • FIG. 10 shows a procedure [8] [9] in which each cloud service facility 30 notifies the upload status grasping unit 530 of the manager of the ID of the uploaded data at each timing.
  • the manager that has received these notifications, for example, by placing an uploaded mark on the notified cloud among a plurality of clouds registered corresponding to each data ID in the processing target data use cloud registration unit 520
  • the temporary storage unit 530 stores the state of the data ID that has been notified from some of the registered plurality of clouds [9]. Accordingly, the manager can manage which data's partial data is stored in which cloud without receiving the partial data itself.
  • FIG. 11 shows a procedure for the calculation target data specifying unit 550 of the manager to share a data ID in which partial data is received in all clouds with each cloud service facility 30.
  • the manager issues a sequence number corresponding to the data ID or the data ID group.
  • the paid-out sequence number and its ID or ID group are registered in the sequence information registration unit 560 [10].
  • the storage of the registered ID or ID group is deleted from the state temporary storage unit 530 [10].
  • the calculation target data specifying unit 550 of the manager then notifies each cloud service facility 30 of the ID or ID group corresponding to the sequence number at a predetermined timing [11]. This notification may be performed every time a sequence number is paid out, or information on several sequence numbers may be notified collectively. Each cloud service facility 30 stores the correspondence between the ID of the uploaded partial data stored by itself and the notified sequence number [12].
  • FIG. 13 shows a state in which each cloud that has received the upload of FIG. 12 notifies the manager as described in FIG. 10 [16] [17], and the manager stores the state [18]. .
  • FIG. 14 shows data IDs or data ID groups that have received notifications from all registered clouds after the manager that received the notification of FIG. 13 has issued the sequence number described in FIG. Correspondingly, a new sequence number is issued [19], notified to each cloud [20], and the correspondence is stored [21].
  • sequence number When 2 is specified, it may be interpreted that data of an ID group corresponding to the specified sequence number and a sequence number smaller than that is specified, or the sequence number is rewritten and stored to indicate the interpretation. May be.
  • FIG. 15 shows the procedure of the stage where the manager obtains the result of statistical processing.
  • the calculation request unit 575 in the manager's statistical processing unit 570 uses, as an argument, the current sequence number (at the time specified when performing statistical processing retroactively) for all clouds storing partial data, as an argument. Request to perform calculation [22]. At this time, the information passed from the manager to each cloud can be only the sequence number. In the example of FIG. 3 or FIG. 4, the processing performed in each cloud is calculation of the sum and the square sum.
  • the counting unit 577 in the manager's statistical processing unit 570 calculates the statistical value to be obtained by summing the values [24]. As shown in FIG. 3, when the processing performed in the manager differs depending on the result from which cloud, such as doubling the value from some clouds, the cloud stored in the processing target data use cloud registration unit 520 Refers to the information indicating the correspondence between the data type and the uploaded data type.
  • the API (interface) between the manager and other devices is configured such that not only the original data but also the individual partial data constituting the original data are not delivered at all.
  • the API between each data input device that handles original data and another apparatus is accessed only from the data input device ([1] in FIG. 8, [5] [6] in FIG. 9, etc.). ), The data input device is configured not to be accessed from the outside. Then, although the original data does not exist and is concealed, the API between each cloud that holds the partial data and another device is configured not to extract the partial data from the cloud. Even with these APIs, the security of data to be kept secret is maintained.
  • a certain amount eg, 10,000, etc.
  • the statistical processing result providing server manages information on which cloud service facility each partial data generated by each data input device is stored. Therefore, if the server is cracked by a malicious attacker, there is a possibility of giving the attacker hints such as the owner and storage location of each data.
  • each data input device and the statistical processing result providing server do not communicate with each other, and each data input device itself stores each partial data (upload destination) It is preferable that the statistical processing result providing server does not handle information specifying each data input device.
  • each data input device is a consistent hash (eg, D.Karger et al. "Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web," Proceedings ofnnual 29 Symposium of Theory of Computing, pp.654-663 (1997), I.Stoica et al. “Chord: A scalable peer-to-peer lookup service for internet applications," ACM SIGCOMM Computer Communication Review 31 (4), p. 149 (2001) etc.) can be used to determine the cloud service facility where the data is stored.
  • a consistent hash eg, D.Karger et al. "Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web," Proceedings ofnnual 29 Symposium of Theory of Computing, pp.654-663 (1997), I.Stoica et al. “Chord: A scalable peer-to-peer lookup service for internet applications," ACM
  • FIG. 16 is an example of the present system configured as described above, and blocks having the same reference numerals as those in the examples of FIGS. 6 and 7 have the same functions as those described with reference to FIGS.
  • the data input devices 15-1 to 15-N, the cloud service equipment 35-1 to 35-M, and the statistical processing result providing server 55 are connected via the network 40. Communication is not performed between the device 15 and the statistical processing result providing server 55.
  • Each data input device 15 includes a data acquisition unit 110, a secret division unit 120, and an upload unit 130 that uploads partial data obtained by the secret division to each cloud service facility 35 via an encrypted communication path.
  • a key generation unit 160 and a hash calculation unit 170 for determining an upload destination by a consistent hash are provided.
  • the control unit 150 included in each data input device 15 controls the key generation unit 160 for each piece of data that is secretly divided, in addition to controlling the number of data divisions in the secret division unit 120 and the type of partial data to be generated.
  • a unique key for example, UUID (universary unique identifier), IPv6 (Internet Protocol version 6) address, etc.
  • the hash calculator 170 calculates the sum of the generated key, time, and sequence number.
  • the hash value is calculated from the total value.
  • the control unit 150 designates the upload destination of each partial data in the upload unit 130 according to the hash value calculated for each partial data, so that each data input device can receive a statistical processing result providing server (manager). In contrast, there is no need to inquire about the upload destination cloud.
  • the control unit 335 included in each cloud service facility 35 specifies the timing at which the calculation unit 320 performs predetermined arithmetic processing in accordance with an instruction from the management unit (management server) 505 in the statistical processing result providing server 55.
  • the control unit 335 itself specifies data to be read from the data storage unit 310 as a target of the arithmetic processing.
  • the statistical processing result providing server 55 includes a management server 505 and a result providing interface 590.
  • the management server 505 includes a statistical processing unit 572, requests calculation processing to each cloud service facility 35 (calculation request unit 576), totals the calculation results returned for each request (aggregation unit 578), Obtain the result of statistical processing.
  • the statistical processing result providing server 55 (management server 505) in FIG. 16 has a function for notifying each data input device of the upload destination cloud, It does not have a function for grasping the upload status or specifying data to be calculated. Therefore, the statistical processing result providing server 55 (manager) does not have any hints related to individual data.
  • the manager knows which cloud can be used for the statistical processing performed by the manager (which cloud is recognized by each data input device when the above-mentioned range is assigned), and the statistics When processing, we ask all clouds that can be used to calculate the sum and square sum, but we know which data input device the calculation in each cloud was performed on Since this is not possible, it is possible to ensure data security for the manager.
  • FIGS. 17 to 19 show that in the configuration example of FIG. 16, each data input device X i secretly divides the acquired data A i into two partial data a i and b i to obtain a plurality (four in this example). However, it shows an example of a processing procedure for uploading to two arbitrarily selected clouds from a cloud of a large number of clouds and performing statistical processing.
  • FIG. 17 shows a procedure of a preparation stage performed inside each data input device 15.
  • Each data input device uses the UUID to generate two keys (k 1 and k 2 ) to determine the cloud to which the two partial data are uploaded [1]. Then, for each key (k 1 and k 2 ), the time (time) and the sequence number n (1 and 2) are added, and the hash value (h 1 and h 2 ) of each total value is calculated. To do.
  • each cloud is assigned a value from 0000 to ffff, and a ring is formed.
  • cloud A has a value group in the range from 0000 to 3fff
  • cloud B has a value group in the range from 4000 to 7fff
  • cloud C has a value in the range from 8000 to bfff.
  • a group of values can be assigned to cloud D in the range from c000 to ffff.
  • the range to be allocated is equally divided, but the range of value groups allocated to a certain cloud may be larger than the range of value groups allocated to another cloud.
  • the calculated hash value (h 1 and h 2 ) determines the cloud included in the assigned value group as the upload destination of the corresponding partial data (a i and b i ) [2]. .
  • FIG. 18 shows a procedure [4] [5] in which each data input device 15 uploads each partial data (a i and b i ) obtained by the confidential division [3] to each cloud service facility 35.
  • Each data input device 15 may upload only partial data, or may upload a manager's address or the like (which serves as identification information for statistical processing) in addition to the partial data.
  • [4] and [5] may be performed at the same time or with a time difference, and the time lag until all partial data obtained from one piece of data by the secret division is stored in each cloud. If statistical processing is performed on the data during the period, an error occurs in the result.
  • the time may be uploaded in addition to the partial data. . However, in the configuration example of FIG. 16, the data ID is not uploaded.
  • the data input device X 1 transmits partial data a i to the cloud B
  • the data input device X 2 transmits to the cloud A
  • the data input device X 3 transmits to the cloud A. Yes.
  • each cloud stores in the data storage unit 310 using the hash value h 1 as a key and the partial data a i (and time as necessary) as a value, and sends a receipt confirmation notification to the data input device X i . Perform [4].
  • the data input device X 1 transmits partial data b i to the cloud C
  • the data input device X 2 transmits to the cloud C
  • the data input device X 3 transmits to the cloud D. Yes.
  • the partial data b i is transmitted together with the corresponding hash value h 2 , and in each cloud, the hash value h 2 is used as a key, and the partial data b i (and time as necessary) is used as a value to the data storage unit 310. Saving is done. Then, a receipt confirmation notification is returned to the data input device X i [5].
  • FIG. 19 shows a procedure of a stage where the statistical processing result providing server (manager) 55 obtains a result of statistical processing using a plurality of clouds.
  • the manager for all clouds used for this statistical processing, regardless of whether or not the target data is actually uploaded to each cloud (each data input device arbitrarily selects the upload destination) Therefore, a state in which some of the clouds are not selected from any data input device may occur, but the manager does not grasp the state) and performs calculation processing (for example, calculation of sum and square sum). Request [6].
  • each cloud service facility 35 Upon receiving the request, each cloud service facility 35 performs calculation processing on the partial data stored in the data storage unit 310, and returns the result value to the manager [7].
  • each cloud service facility 35 performs calculation processing on the partial data stored in the data storage unit 310, and returns the result value to the manager [7].
  • the time lag in consideration of the above-described time lag, only data with a time that is a predetermined time before the current time among the data stored in the data storage unit 310 is subject to calculation processing. May be.
  • the partial data that has been subjected to the calculation process is deleted from the data storage unit 310 or the calculation process target is limited to the unprocessed partial data so that the partial data that has been subjected to the statistical process is not targeted again. May be.
  • the manager calculates the values by summing them. Statistical values are calculated [8].
  • the manager 55 knows whether each cloud belongs to the first ring or the second ring, and f s (X i ), that is, the result from the cloud belonging to the first ring, A sum is selected, and f ⁇ (X ′ i ), that is, a sum of squares is selected for the result from the cloud belonging to the second ring, and these are summed. Thereby, the sum of squares of the original data x i can be obtained. Moreover, if f s (X i ) is selected from the results from the cloud belonging to the first ring and these are summed, the sum of the original data x i can be obtained.
  • a part of a plurality of partial data obtained by concealing one piece of data is stored in the cloud, but the rest is not stored.
  • a mechanism called a marker may be introduced so that the data of such a state can be reliably removed and the result of statistical processing can be obtained.
  • each data input device calculates the hash value for the marker in addition to the hash value for each partial data obtained by the confidential division, and all the partial data constituting one data is stored in the cloud. After confirming that it has been saved in, set the marker on the cloud. Information indicating this marker is stored together with the partial data when each data input device stores the partial data in the cloud.
  • the cloud is set with a marker associated with the stored partial data, that is, all partial data constituting the data.
  • data can be included in the calculation only if it is already stored in one of the clouds, and data that is in the process of being uploaded from the data input device to the cloud is reliably prevented from being calculated. be able to.
  • the above mechanism is a three-phase commitment (see, for example, Dale Skeen, “A Formal Model of Crash Recovery in a Distributed System,” IEEE Transactions on Software Engineering 9 (3), pp.219-228 (May 1983)) It is also possible to realize by applying the above technology.
  • the above marker corresponds to the coordinator of the three-phase commitment, and each data input device corresponds to the participant of the three-phase commitment. At this time, each data input device uses a UUID or the like as a unique key. Therefore, each time the address changes, it hides itself.
  • FIG. 20 shows an example of the system configured as described above, and blocks having the same reference numerals as those in the example of FIG. 16 have the same functions as those described with reference to FIG.
  • the data input devices 17-1 to 17-N, the cloud service facilities 37-1 to 37-M, and the statistical processing result providing server 55 are connected via the network 40. Communication is not performed between the device 17 and the statistical processing result providing server 55.
  • Each data input device 17 includes a data acquisition unit 110, a concealment division unit 120, a key generation unit 160, a hash calculation unit 170, and an upload unit 190.
  • the upload unit 190 includes partial data obtained by concealment division.
  • the information for setting the marker hereinafter referred to as "marker information" is uploaded to any one of the cloud service facilities 37.
  • control unit 180 included in each data input device 17 generates a unique key (such as UUID) in the key generation unit 160 for the marker, and in the hash calculation unit 170. It has a function of calculating the hash value from the total value of the generated key, time, and sequence number.
  • control unit 180 cooperates with the upload unit 190 to upload the marker information after confirming that all the partial data obtained by the confidential division is stored on the cloud.
  • the data storage unit 317 included in each cloud service facility 37 has a function of storing information indicating the storage destination of the marker information together with each uploaded partial data.
  • Each cloud service facility 37 includes the data storage unit 317.
  • the marker storage unit 350 for storing the uploaded marker information, and the marker inquiry unit 340 for inquiring the storage status of the marker information in the marker storage unit 350 of its own or other cloud service facility 37 are provided.
  • the control unit 337 included in each cloud service facility 37 specifies the timing at which the calculation unit 320 performs predetermined arithmetic processing in accordance with an instruction from the management unit (management server) 505 in the statistical processing result providing server 55.
  • the control unit 337 specifies which of the partial data stored in the data storage unit 317 should be the target in cooperation with the marker inquiry unit 340.
  • each data input device X i secretly divides the acquired data Ai into two partial data a i and b i , and a plurality of (in this example, four).
  • uploaded from cloud number can be) into two clouds arbitrarily selected, while guaranteeing the consistency with the marker m i, shows an example of a processing procedure for performing statistical processing.
  • FIG. 21 shows a procedure of a preparation stage performed inside each data input device 17.
  • Each data input device uses the UUID to generate three keys (k 0 , k 1 , k 2 ) in order to determine the cloud to which the two partial data and marker information are uploaded [1].
  • the time (time) and the sequence number n (0, 1, 2) are added, and the hash value (h 0 , h 1 , h 2 ) are calculated.
  • the calculated hash values (h 0 , h 1 , h 2 ) are stored in the assigned value group and the corresponding markers and partial data (m i , a i , b i ) Determine the upload destination [2].
  • FIG. 22 shows that each data input device 17 uploads each partial data (a i and b i ) obtained by the confidential division [3] to each cloud service facility 37 [4] [5] and confirms receipt thereof. Is obtained, the marker (m i ) corresponding to the partial data is uploaded to the cloud service facility 37 [6].
  • the manager's address or the like which serves as identification information for statistical processing
  • the data ID is not uploaded.
  • the data input device X 1 is for the cloud B
  • the data input device X 2 is for the cloud A
  • the data input device X 3 is for the cloud A
  • the partial data a i and the hash value h. 0 is transmitted.
  • Storage in the upload destination of the partial data a i and a hash value h 0 described above can, if done by a key-value store, the partial data a i and a hash value h 0 is transmitted together with the corresponding hash value h 1. Then, each cloud stores in the data storage unit 317 using the hash value h 1 as a key and the partial data a i and the hash value h 0 (and time as necessary) as a value, and the data input device X i [4].
  • the data input device X 1 is for the cloud C
  • the data input device X 2 is for the cloud C
  • the data input device X 3 is for the cloud D
  • the partial data b i and the hash value h. 0 is transmitted.
  • the partial data b i and the hash value h 0 are transmitted together with the corresponding hash value h 2 , and in each cloud, the hash value h 2 is used as a key, and the partial data b i and the hash value h 0 (and time as necessary). Is stored as a value in the data storage unit 317. Then, a receipt confirmation notification is returned to the data input device X i [5].
  • the data input device X 1 sets a marker ( mi ) for the cloud A, the data input device X 2 for the cloud B, and the data input device X 3 for the cloud D. Sending value.
  • each cloud stores the hash value h 0 as a key, the value 1 as a value, stores it in the marker storage unit 350, and notifies the data input device X i of a receipt confirmation [6].
  • FIG. 23 shows a procedure in a stage where the statistical processing result providing server (manager) 55 obtains a statistical processing result using a plurality of clouds. For all clouds used for this statistical process, the manager performs calculation processing (for example, calculation of sum and square sum) regardless of whether or not the target data is actually uploaded to each cloud. ) Is requested [7].
  • calculation processing for example, calculation of sum and square sum
  • Each cloud service facility 37 that has received the request reads out the hash value h 0 (information indicating the storage destination of the marker information) stored in the data storage unit 317 together with the partial data, and corresponds to the hash value h 0 . It is checked whether a marker is set for the cloud, that is, whether the value (1) for setting the marker is stored in the marker storage unit 350 using the hash value h 0 as a key [8].
  • the cloud A makes a marker inquiry [8] for the partial data a 2 and a 3 stored in the cloud A to the clouds B and D, respectively.
  • a marker inquiry [8] for the partial data a 1 being stored is made to the cloud A, and the cloud C sends a marker inquiry [8] for the partial data b 1 and b 2 stored by itself to the cloud A, respectively.
  • B, and the cloud D makes a marker inquiry [8] for the partial data b 3 stored in the cloud D itself.
  • the cloud that has received the inquiry stores the key (hash value h 0 ) and value associated with the inquiry as a value of the marker (m i ) as the value of the marker (m i ) to the inquiry source cloud. Return it. If not saved, a value indicating an error (a value other than 1) is returned as the marker value.
  • the inquiry source cloud checks the time stored together with the hash value h 0 of the marker for which a value of 1 has not been returned from the inquiry destination cloud, and the time is determined from the current time for a predetermined time (for example, If it is more than 10 minutes), it is considered that the transaction has not been completed normally, and the partial data stored together may be deleted. If it is within the predetermined time, it is considered that there is a possibility that the transaction is still in progress, and the partial data may be left as it is without being included in the calculation target.
  • a predetermined time for example, If it is more than 10 minutes), it is considered that the transaction has not been completed normally, and the partial data stored together may be deleted. If it is within the predetermined time, it is considered that there is a possibility that the transaction is still in progress, and the partial data may be left as it is without being included in the calculation target.
  • the manager calculates the values by summing them. Statistical values are calculated [10].
  • each cloud can be identified from each data input device while allowing each data input device itself to identify (without receiving an instruction from the manager) for each data.
  • the data ID (i) together with the partial data (not reporting from the cloud to the manager)
  • the statistical processing result providing server (manager) it becomes possible to reduce the information managed by the statistical processing result providing server (manager).
  • each cloud can calculate the inner product only for the partial data in which the marker is registered, so that the manager does not have to manage it accurately. It is also possible to obtain a statistical processing result.
  • At least two cloud rings can be provided in order to obtain the sum of squares. In that case, whether you select a cloud that belongs to the first ring, a cloud that belongs to the second ring, or a cloud that does not belong to any ring I do not care.
  • a function for verifying access authority using a key is added to the data storage unit 310 of each cloud service facility 30, for example, when uploading partial data from the data input device 10 to each cloud service facility 30. Upload with key information. Then, the data storage unit 310 of each cloud service facility 30 stores access information using a key together with the partial data, and when receiving access to the partial data, the person who has accessed may own the corresponding key. Allow partial data acquisition only when verified.
  • information on the key of the data owner is stored in advance in the data storage unit 310 of each cloud service facility 30, and when the partial data is uploaded, information on the key corresponding to the partial data (For example, the partial data is encrypted with the key) and stored.
  • the owner of the original data accesses all the clouds that store the partial data, retrieves the partial data using a key, and restores the original data by collecting all the partial data. be able to.
  • FIGS. 24 to 27 explain only a part of possible application examples of this system.
  • FIG. 24 shows an application to the educational field, and can be applied to statistical processing for online tests, simulation tests, and the like.
  • FIG. 25 is an application to the medical field, and can be applied to, for example, statistical processing for blood pressure, body weight, body fat percentage, and the like.
  • FIG. 26 is applied to the distribution business field, the present invention is not limited thereto, and can be applied to statistical processing in an anonymous questionnaire survey such as a lifestyle survey.
  • FIG. 27 shows an application to the field of telematics (automobiles). For example, it can be applied to statistical processing for traveling information such as speed and acceleration, but can also be applied to risk management in other fields. It is.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Complex Calculations (AREA)

Abstract

 オリジナルデータの受け渡しも保存も行わないことにより秘匿すべき情報が漏洩するリスクを低減しつつ、オリジナルデータの集合について統計処理の結果を得ることを可能にする。 複数のデータ入力装置のそれぞれが、秘匿すべきオリジナルデータを取得する手段と、全ての部分を合わせるとオリジナルデータが復元されるようにオリジナルデータを秘密の比率に従って分割し、所定の個数の部分データを出力する手段とを備える。所定の個数の演算装置のそれぞれは、複数の入力データに基づいて所定の演算を行う手段を備え、複数のデータ入力装置のそれぞれから出力された部分データを入力データとして演算を行い、演算結果を出力する。データ処理装置は、所定の個数の演算装置のそれぞれから出力された演算結果を利用することにより、複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、オリジナルデータを取得することなく求め、提供するサービスを行う。

Description

データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法 関連する出願
 本出願では、2013年10月23日に日本国に出願された特許出願番号2013-220673、及び2014年8月29日に日本国に出願された特許出願番号2014-176590の利益を主張し、当該出願の内容は引用することによりここに組み込まれているものとする。
 本発明は、個人のプライバシ等に関する秘匿すべきデータに対して、データの秘匿性を維持しながら統計処理を行い、その結果を提供するための技術に関する。
 近年、個人情報や行動記録などの「ライフログ」を解析し、さまざまなビジネスシーンに活用する事例が増えている。例えば、POSデータなどの購買履歴、電子マネーの利用履歴、交通網の乗車履歴、車のGPS情報、携帯電話やスマートフォンなどの通話履歴や利用履歴、血圧や体重等のヘルスケアに関する測定履歴、さらに病歴等、あらゆる場面でデータを解析することが求められている。
 「ライフログ」から得られる情報は有益なものが多く、行動パターンの推定やリコメンド、ターゲットマーケティング、新製品や新手法の研究開発等、多くの応用が考えられる。一方で、データを解析する際のプライバシ情報の取り扱いに関する懸念も大きい。
 また、クラウド・コンピューティングの技術を利用し、個人や企業等のユーザが、自身のデータを、手元の機器に保存せずに、ネットワークを介してデータセンタ等へ送信して保存できるようにするサービスも、普及している。この場合も、クラウド上に保存されるデータにプライバシ情報が含まれると、情報漏洩への懸念が大きくなる。
 プライバシ情報を保護しつつデータを解析して有用な知識を見出すための技術としては、プライバシ保護データマイニング(PPDM)と呼ばれる技術が開発されており(非特許文献1参照)、保存されているデータ自体が第三者に流出しても秘密の情報は漏洩しないようにするための技術としては、秘密分散と呼ばれる技術が提案されている(特許文献1~3参照)。
特開2013-20314号公報 特表2012-530391号公報 特開2005-250866号公報
佐久間 淳、小林重信「プライバシ保護データマイニング」、人工知能学会誌 Vol.24 No.2(2009)
 PPDMには、信頼できる第三者機関の存在を想定し、秘匿すべきオリジナルデータを当該第三者機関へ渡す方式があるが、そのように信頼できる第三者機関は、実際には実現困難である上に、秘密の情報が集約される当該第三者機関から情報が漏洩すると、その被害が甚大となることから、現実的な解決策にはならない。
 PPDMのうち、信頼できる第三者機関を利用しない方式は、ある組織が有するオリジナルデータを外部から秘匿しながら、そのオリジナルデータの集合に対する解析の結果を当該組織の外部において求めるものであり、解析処理を行う外部の者は、オリジナルデータを渡されることなく、何らかの秘匿化処理が行われたデータを渡されて、解析処理を行う。その際、外部の者が、渡されたデータから、組織内に秘匿されているオリジナルデータを求めることができないようにするために、種々の手法が開発されている。
 しかしながら、信頼できる第三者機関を利用しない方式も、組織の内部では、秘匿すべきオリジナルデータを保持していることを前提としている。したがって、当該組織の保持しているオリジナルデータが第三者に流出し、プライバシ情報が漏洩するリスクについては、PPDM自体は、無防備であることになる。
 そうすると、従来の技術では、PPDMとオリジナルデータの保持を暗号化された状態で行う技術とを組み合わせることにより、秘匿すべきデータの安全性を保つことになるが、いくら暗号化された状態であっても、オリジナルデータが存在する以上は、暗号化強度に応じて膨大となるものの計算能力と時間さえかければ、復号化してオリジナルデータを求めることができてしまう。よって、情報漏洩のリスクは、排除できないものとして残ることになる。
 これに対して、秘密分散技術は、秘密情報を幾つか(N個とする)のデータに分割して、分散させて保持することにより、N個のうちのK個(K<N)のデータが第三者に流出して、それらが集められても、秘密情報を復元することはできないようにして、情報漏洩を防ぐものである。
 このように秘密情報を分散させるということは、オリジナルデータを保持しないということであり、N及びKの値を大きくすることにより、確実に情報漏洩のリスクを低減することができる。つまり、K箇所で、保持しているデータの流出が起きても、秘密情報は漏洩しないことが担保されるため、Kの値を十分に大きくし、それぞれのデータ保持場所でのセキュリティを高くすることにより、K個の全ての場所からデータが流出する可能性を、極めて小さくすることが可能である。
 しかしながら、秘密分散技術により安全に保持されている秘密情報を解析したい場合、分割された状態のままで解析をすることができないため、一旦、データ全部を一箇所に集めてオリジナルの秘密情報を復元した上で、解析処理を行わなければならない。そうすると、たとえ通常の保存時に秘密分散技術を利用していても、解析をする際にオリジナルデータを保持することになるため、データの流出が即、情報漏洩につながるというリスクは、依然として残ることになる。
 本発明は、上述した状況に鑑み、オリジナルデータの受け渡しも保存も行わないことにより、オリジナルデータを保持しないようにして、秘匿すべき情報が漏洩するリスクを低減しつつ、オリジナルデータの集合について統計処理の結果を得ることを可能にすることを目的とする。
 本発明の原理に従う一つの例に係るデータ秘匿型統計処理システムは、それぞれが秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置と、それぞれが複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置と、前記複数の演算装置のそれぞれが前記オリジナルデータの部分データを前記入力データとして演算を行った結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める手段を備えるデータ処理装置を備える。
 本発明によれば、オリジナルデータを保持しないようにして秘匿すべき情報が漏洩するリスクを低減しつつ、オリジナルデータの集合について統計処理の結果を得ることが可能になる。
本発明の実施の形態に係るデータ秘匿型統計処理システム(以下、「本システム」という)において総和を求める例を説明する図 本システムにおいて総和を求める別の例を説明する図 本システムにおいて2乗和を求める例を説明する図 本システムにおいて2乗和を求める別の例を説明する図 本システムにおいて内積を求める例を説明する図 本システムの構成例を示す図 本システムにおける統計処理結果提供サーバの構成例を示す図 本システムにおける処理手順の例(1)~(3)を説明する図 本システムにおける処理手順の例(4)~(6)を説明する図 本システムにおける処理手順の例(7)~(9)を説明する図 本システムにおける処理手順の例(10)~(12)を説明する図 本システムにおける処理手順の例(13)~(15)を説明する図 本システムにおける処理手順の例(16)~(18)を説明する図 本システムにおける処理手順の例(19)~(21)を説明する図 本システムにおける処理手順の例(22)~(24)を説明する図 本システムの別の構成例を示す図 本システムにおける別の処理手順の例(1)~(2)を説明する図 本システムにおける別の処理手順の例(3)~(5)を説明する図 本システムにおける別の処理手順の例(6)~(8)を説明する図 本システムのさらに別の構成例を示す図 本システムにおけるさらに別の処理手順の例(1)~(2)を説明する図 本システムにおけるさらに別の処理手順の例(3)~(6)を説明する図 本システムにおけるさらに別の処理手順の例(7)~(10)を説明する図 本システムを教育の分野において応用する例を説明する図 本システムを医療の分野において応用する例を説明する図 本システムを流通業(小売業)の分野において応用する例を説明する図 本システムをテレマティクスの分野において応用する例を説明する図
 上述した本発明の原理に従う一例に係るデータ秘匿型統計処理システムの構成によれば、各データ入力装置が取得したオリジナルデータは、部分データにされて複数の演算装置に分散して渡されるため、いずれの演算装置もオリジナルデータを取得せず、データ処理装置もオリジナルデータを取得しない。よって、オリジナルデータを保持しないことで、秘匿すべき情報が漏洩するリスクを低減することが可能になる。一方で、各演算装置が、部分データについて演算を行い、データ処理装置が、複数の演算装置からの演算結果を利用することで、オリジナルデータの集合についての統計処理の結果を得ることが可能になる。
 上記の構成において、前記データ入力装置が、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割し、所定の個数の部分データを生成する手段と、前記所定の個数の部分データのそれぞれを、前記複数の演算装置のうち対応する演算装置へ、保護された通信路により送信する手段を備えるようにしてもよい。
 これにより、オリジナルデータをM個に分割して、M個の演算装置に送信した場合、最大(M-1)個までの部分データが第三者に流出しても、オリジナルデータを復元することができないようにすることが可能になる。したがって、M個の演算装置がそれぞれの部分データを保存して、一部の演算装置からデータが第三者に流出したとしても、オリジナルデータの秘匿性を維持可能とすることができる。また、データ入力装置からの通信路の保護により、通信の傍受によって全部の部分データ(即ちオリジナルデータ)が第三者に取得されることを防止することができる。
 なお、秘密の比率は、各々のデータ入力装置によって異なるようにすることが望ましい。また、各々のデータ入力装置が生成する部分データの個数は、一つの統計処理の対象となる集合に属するオリジナルデータの全てについて同一とする方が、運用管理が簡単化されるが、異なることを許容しても構わない。
 上記の構成において、前記演算装置が、前記複数のデータ入力装置から受信した複数の前記部分データに基づいて所定の演算を行って得た演算結果を、前記データ処理装置へ送信する手段を備え、前記データ処理装置が、前記複数の演算装置から受信した複数の前記演算結果に基づいて所定の統計処理を行う手段を備えるようにしてもよい。
 これにより、M個の演算装置のそれぞれが、N個のデータ入力装置から部分データを受信し、N個の部分データから演算した結果をデータ処理装置へ送信し、データ処理装置が、M個の演算結果を処理することで、N個のオリジナルデータについて統計処理を行った結果を求めることが可能になる。
 このとき、各演算装置は、N個のオリジナルデータに対応するN個のデータを受け取るが、それは部分データであってオリジナルデータの情報を含んでおらず、データ処理装置は、オリジナルデータを構成するM個の部分データに対応するM個の演算結果を受け取るが、それはオリジナルデータの集合についての情報であって個々のオリジナルデータの情報を含んでいない。よって、各演算装置とデータ処理装置に、いずれのオリジナルデータも取得させることなく、統計処理の結果が得られることになる。
 上記の構成において、前記所定の個数の部分データは、前記オリジナルデータを分割した各々の部分の値から生成されるものを含み、前記演算装置が行う所定の演算は、前記複数の部分データの総和の演算を含み、前記データ処理装置が行う所定の統計処理は、前記所定の個数の演算結果の総和を計算する処理を含むものとしてもよい。
 これにより、N個のオリジナルデータの総和(X1+X2+…+XN)という統計処理の結果を求めることが、オリジナルデータを取得することなく可能になる。例えば、i番目のデータ入力装置(i=1,2,…,N)が、Xi=x1i+x2i+…+xmiとなるように、m個の部分データxjiを生成し、j番目の演算装置(j=1,2,…,m)が、N個の部分データの総和(xj1+xj2+…+xjN)の値を求め、データ処理装置が、m個の演算装置が求めた値の総和を求めれば、(X1+X2+…+XN)の値が求められる。
 上記の構成において、前記所定の個数の部分データは、前記オリジナルデータを分割した各々の部分の値から生成されるものと、互いに異なる2つの部分同士を乗算した値に基づいて生成されるものとを含み、前記演算装置が行う所定の演算は、前記複数の部分データの総和及び2乗和の少なくとも一方の演算を含み、前記データ処理総理が行う所定の統計処理は、前記所定の個数の演算結果のうち前記各々の部分の値に対応するものについて2乗和を計算する処理と、前記所定の個数の演算結果のうち前記部分同士を乗算した値に対応するものについて総和を計算する処理を含むものとしてもよい。
 これにより、N個のオリジナルデータの2乗和(X1 2+X2 2+…+XN 2)という統計処理の結果を求めることが、オリジナルデータを取得することなく可能になる。例えば、i番目のデータ入力装置(i=1,2,…,N)が、Xi=x1i+x2i+…+xmiとなるように、m個の部分データxjiを生成し、さらに、m個の部分データ[Σj≠k(xjiki)](以下、「x’ji」と記す)を生成し、j番目の演算装置(j=1,2,…,m)が、N個の部分データxjiの2乗和(xj1 2+xj2 2+…+xjN 2)の値を求め、j番目の演算装置(j=m+1,m+2,…,2m)が、N個の部分データx’jiの総和(x’j1+x’j2+…+x’jN)の値を求め、データ処理装置が、2m個の演算装置が求めた値の総和を求めれば、(X1 2+X2 2+…+XN 2)の値が得られる。
 別の例として、i番目のデータ入力装置(i=1,2,…,N)が、Xi=x1i+x2i+…+xmiとなるように、m個の部分データxjiを生成し、さらに、m+1番目の部分データ[Σj(Σj≠k(xjiki))](以下、「x”i」と記す)を生成し、j番目の演算装置(j=1,2,…,m)が、N個の部分データxjiの2乗和(xj1 2+xj2 2+…+xjN 2)の値を求め、m+1番目の演算装置が、N個の部分データx”iの総和(x”1+x”2+…+x”N)の値を求め、データ処理装置が、m+1個の演算装置が求めた値の総和を求めるのでも、(X1 2+X2 2+…+XN 2)の値が得られる。
 代替となる構成として、上記の構成において、前記所定の個数の部分データは、前記オリジナルデータを分割した各々の部分を2乗した値から生成されるものと、互いに異なる2つの部分同士を乗算した値に基づいて生成されるものとを含み、前記演算装置が行う所定の演算は、前記複数の部分データの総和の演算を含み、前記データ処理装置が行う所定の統計処理は、前記所定の個数の演算結果の総和を計算する処理を含むものとしてもよい。
 これによっても、N個のオリジナルデータの2乗和(X1 2+X2 2+…+XN 2)という統計処理の結果を求めることが、オリジナルデータを取得することなく可能になる。例えば、i番目のデータ入力装置(i=1,2,…,N)が、Xi=x1i+x2i+…+xmiとなるようにxjiを定めて、m個の部分データxji 2と、m個の部分データx’jiとを生成し、j番目の演算装置(j=1,2,…,m)が、N個の部分データxji 2の総和(xj1 2+xj2 2+…+xjN 2)の値を求め、j番目の演算装置(j=m+1,m+2,…,2m)が、N個の部分データx’jiの総和(x’j1+x’j2+…+x’jN)の値を求め、データ処理装置が、2m個の演算装置が求めた値の総和を求めれば、(X1 2+X2 2+…+XN 2)の値が得られる。
 別の例として、i番目のデータ入力装置(i=1,2,…,N)が、Xi=x1i+x2i+…+xmiとなるようにxjiを定めて、m個の部分データxji 2と、1個の部分データx”iとを生成し、j番目の演算装置(j=1,2,…,m)が、N個の部分データxji 2の総和(xj1 2+xj2 2+…+xjN 2)の値を求め、m+1番目の演算装置が、N個の部分データx”iの総和(x”1+x”2+…+x”N)の値を求め、データ処理装置が、m+1個の演算装置が求めた値の総和を求めるのでも、(X1 2+X2 2+…+XN 2)の値が得られる。
 上述した例では、総和を求めるのにm個の演算装置を用い、2乗和を求めるのに2m個もしくはm+1個の演算装置を用いているが、いずれの場合も、同時に(m-1)箇所でデータ流出があっても、オリジナルデータの秘匿性は維持可能である。
 また、各々の演算装置は、データ入力装置から受信したデータが何であるかに関わらず、受信したデータに対して総和及び2乗和の演算をして、この2つの演算結果をデータ処理装置に送信するという、統一的な処理を行う構成とし、データ処理装置が、行いたい統計処理に従ってデータ処理装置からの演算結果を選択(例えば、1~m番目の演算装置については2乗和の方の結果を選択し、m+1~2m番目の演算装置については総和の方の結果を選択する等)して、計算対象とするように構成してもよい。
 上記のようにオリジナルデータの集合の総和及び2乗和という統計処理の結果を求めることができる構成を利用して、標本平均の算出、標本分散の算出、標本偏差の算出、最尤推定、T分布を用いた区間推定、母比率の信頼区間の推定、母分散の推定、母平均の検定、母集団A及びBに関する母平均の差の検定、母比率の検定、母集団A及びBの母分散の比較検定、分散分析のうちの少なくとも1つの結果を、最終的な統計処理の結果として求める構成とすることも可能である。
 上記の構成において、前記複数のデータ入力装置は、同数ずつの互いに対応する第1のデータ入力装置と第2のデータ入力装置とを含み、前記第1のデータ入力装置及び前記第2のデータ入力装置が行う送信は、前記所定の個数の部分データのそれぞれを、所定の個数の2乗個の前記演算装置のうち対応する所定の個数の演算装置へ送信するものであり、前記演算装置が行う所定の演算は、前記第1のデータ入力装置からの部分データ列と前記第2のデータ入力装置からの部分データ列との内積を求める演算を含み、前記データ処理装置が行う統計処理は、前記所定の個数の2乗個の演算装置から受信した所定の個数の2乗個の前記演算結果の総和を計算する処理を含むものとしてもよい。
 これにより、第1のオリジナルデータの集合(N個のオリジナルデータXi)と第2のオリジナルデータの集合(N個のオリジナルデータYi)の内積(X11+X22+…+XNN)という統計処理の結果を求めることが、オリジナルデータを取得することなく可能になる。例えば、i番目の第1のデータ入力装置(i=1,2,…,N)が、Xi=x1i+x2i+…+xmiとなるように、m個の部分データxjiを生成し、i番目の第2のデータ入力装置(i=1,2,…,N)が、Yi=y1i+y2i+…+ymiとなるように、m個の部分データykiを生成し、jk番目の演算装置(jk=1,2,…,m2)が、N個の部分データxjiとN個の部分データykiとの内積(xj1k1+xj2k2+…+xjNkN)の値を求め、データ処理装置が、m2個の演算装置が求めた値の総和を求めれば、(X11+X22+…+XNN)の値が求められる。
 上記のように2つのオリジナルデータの集合の内積という統計処理の結果を求めることができる構成を利用して、共分散の算出、相関係数の算出、回帰分析のうちの少なくとも1つの結果を、最終的な統計処理の結果として求める構成とすることも可能である。
 上記のデータ秘匿型統計処理システムにおいて、前記データ入力装置が、前記オリジナルデータを分割する際に発生させた乱数を用いて前記秘密の比率を定め、分割した後に前記秘密の比率の記憶を消去する手段をさらに備えるようにしてもよい。
 これにより、オリジナルデータを構成する複数の部分データのうちの一つしか第三者に流出しておらず、オリジナルデータの秘匿性が維持されるべき場合でも、秘密の比率を知られてしまうと、オリジナルデータが復元できてしまうという情報漏洩のリスクを、低減することが可能になる。その都度ランダムに秘密の比率を定めるようにすれば、比率が推測されてしまう可能性が少なくなるし、秘密の比率の記憶を消去しておけば、情報漏洩の可能性も少なくなる。
 上記のシステムにおいて、前記演算装置が、前記複数のデータ入力装置から受信した複数の前記部分データのそれぞれを、該部分データを送信したデータ入力装置と関連付けて保存する手段と、前記データ入力装置との関連付けを示す要求に応じて、前記複数の部分データのうち、該データ入力装置と関連付けて保存されている部分データを返送する手段をさらに備えるようにしてもよい。
 これにより、データ入力装置が取得したオリジナルデータを即座に分割し、複数の演算装置に分散して保存させることで、データ入力装置もオリジナルデータを保持しないことになり、秘匿すべき情報が漏洩するリスクを確実に低減することが可能になる。
 上記の構成において、前記データ入力装置との関連付けを有する装置が、前記オリジナルデータを分割して生成した部分データの全てを、前記複数の演算装置のうち対応する演算装置から取得して、前記オリジナルデータを復元する手段を備えるようにしてもよい。
 これにより、秘密の比率の記憶が残っていなくても、オリジナルデータの本来の保有者は、分散して保存されている複数の部分データを全て集めることで、オリジナルデータを復元することが可能になる。
 代替となる構成として、前記データ入力装置との関連付けを有する装置が、前記オリジナルデータを分割した各々の部分のうち一つについての前記比率を記憶する手段と、前記オリジナルデータを分割して生成した部分データのうち、記憶されている前記一つの比率に該当する部分データを、前記複数の演算装置のうち対応する演算装置から取得して、前記オリジナルデータを復元する手段とを備えるようにしてもよい。
 これにより、オリジナルデータの本来の保有者は、分散して保存されている複数の部分データのうちの一つを取得することで、オリジナルデータを復元することが可能になる。
 上記のシステムにおいて、前記データ処理装置が、前記複数のデータ入力装置のそれぞれへ、前記部分データを前記複数の演算装置のうちいずれへ送信すべきかを指示する手段と、前記複数の演算装置のそれぞれへ、前記複数のデータ入力装置から受信した複数の前記部分データのうちいずれを対象として所定の演算を行うべきかを指示する手段を備えるようにしてもよい。
 これにより、どのような統計処理の結果を得たいかに応じて、その都度、利用する演算装置を選択したり、演算装置の数を指定したりすることが可能になり、時々の状況に応じた負荷分散や、安全度の細かい設定等が可能になる。また、各演算装置が有する部分データが、所望の統計処理の対象となるオリジナルデータの部分データであるかそうでないかを、演算装置に伝えることが可能になり、統計処理の対象に含めてしまうと結果に誤差等が生じる部分データを、演算から外すことが可能になる。
 上記のシステムにおいて、前記複数のデータ入力装置のそれぞれが、前記部分データを前記複数の演算装置のうちいずれへ送信すべきかを決定する手段を備え、前記複数の演算装置のそれぞれが、前記複数のデータ入力装置から受信した複数の前記部分データのうちいずれを対象として所定の演算を行うべきかを決定する手段を備えるようにしてもよい。
 これにより、各データ入力装置自身が送信先の演算装置を選択することと、各演算装置自身が統計処理の対象に含めるべき部分データを選別することとが可能になり、データ処理装置が、各オリジナルデータの内容を取得しないだけでなく、各オリジナルデータに関係する情報をも取り扱わないようにすることができ、さらなるデータの安全性を実現することができる。
 上記のいずれの構成においても、前記複数の演算装置の数を、一つのオリジナルデータから得られる部分データの個数である所定の数と同じかそれよりも大きくし、前記所定の個数の部分データが、それぞれ異なる演算装置に送信されるようにするとよい。
 上述したシステムにおいて、前記複数の演算装置は、それぞれ異なる事業者により提供されるサービスに属するものであり、前記データ処理装置は、前記複数の演算装置とは異なる事業者により運営されるものであってもよい。
 これにより、例えば、統計処理の主体となる事業者が、データ処理装置を運営管理し、既存の複数のクラウドサービス事業者から提供されるデータの保存及び演算サービスを利用して、統計処理結果提供サービスを行うようなことが可能になる。
 本発明の原理に従う一つの例に係る統計処理結果提供サーバ装置は、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置であり、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置と通信する手段と、前記複数の演算装置のそれぞれに、前記オリジナルデータの部分データを前記入力データとして演算を行わせ、該演算の結果を取得する手段と、前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行う手段を備える。複数の前記部分データは、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割することにより、生成されたものとする。
 この構成によれば、オリジナルデータが部分データにされて複数の演算装置に分散して渡されるため、いずれの演算装置もオリジナルデータを取得せず、サーバ装置もオリジナルデータを取得しない。よって、オリジナルデータを保持しないことで、秘匿すべき情報が漏洩するリスクを低減することが可能になる。一方で、サーバ装置が、複数の演算装置に部分データを入力とする演算を行わせ、その結果を利用することで、オリジナルデータの集合についての統計処理の結果を得ることが可能になる。また、第三者が一部の部分データを取得してもオリジナルデータは復元されないため、オリジナルデータの秘匿性を維持可能とすることができる。なお、秘密の比率は、オリジナルデータを分割する機器内にのみ、少なくとも分割時に存在するだけで、誰にも知られないか、オリジナルデータの保有者しか知ることのできないものである。
 上記のサーバ装置において、前記複数の演算装置に前記オリジナルデータに属する全ての部分データが揃ったことを確認する手段と、前記確認のされた部分データのそれぞれを対象として対応する演算装置における前記所定の演算が行われるように、前記複数の演算装置のそれぞれへ指示を行う手段をさらに備えるようにしてもよい。
 これにより、統計処理の対象に含めてしまうと結果に誤差等が生じる部分データを、演算から外すことが可能になる。例えば、同じオリジナルデータに属するある部分データは対応する演算装置に受信され保存されているが、別の部分データは対応する演算装置に受信されていない場合に、各演算装置が、自身に保存されている部分データ全てを対象に演算してしまうと、それらの演算装置からの演算結果を処理した結果は、誤ったものとなってしまう。ここで、複数の演算装置を統括的に利用するサーバ装置が、全ての部分データが揃っているものを各演算装置に伝えれば、正しい統計処理結果を得ることが可能になる。
 上記の構成において、サーバ装置が、前記確認のために、前記複数の演算装置のそれぞれから、該演算装置に保存された部分データが属するオリジナルデータの識別番号を受信する手段をさらに備えるようにしてもよい。
 これにより、サーバ装置は、複数の演算装置を見渡して、全ての部分データが揃っている状態になったか否かを、各演算装置から個々の部分データを取得するようなことなく、確認することが可能になる。
 上記の構成において、サーバ装置が、前記確認がされたオリジナルデータの識別番号の集合をシーケンス番号と対応付けて前記複数の演算装置へ通知する手段と、前回の通知の後に前記確認がされたオリジナルデータの識別番号の集合を次のシーケンス番号と対応付けて前記複数の演算装置へ通知する手段をさらに備え、前記複数の演算装置のそれぞれに、1つのシーケンス番号の指定と共に前記所定の演算の指示を送信することにより、指定されたシーケンス番号以前の複数のシーケンス番号に対応する識別番号の集合を併せて前記所定の演算の対象とする部分データが特定されるようにしてもよい。
 これにより、数多くの部分データが各演算装置に受信され蓄積されていく間に、随時、各演算装置が有する数多くの部分データのうちどれが、全ての部分データが揃っている状態になったかという情報を、サーバ装置が各演算装置に共有させることが可能になる。
 上記の構成において、サーバ装置は、あるオリジナルデータの集合を対象として、前記複数の演算装置に前記所定の演算を行わせた結果を取得した後に、該あるオリジナルデータの集合に限定された数のオリジナルデータを加えた集合を対象として、前記複数の演算装置に前記所定の演算を行わせた結果を取得することを禁止する手段をさらに備えるようにしてもよい。
 上述したように、サーバ装置は、N個の部分データから演算した結果を、M個の演算装置のそれぞれから受信して処理することで、N個のオリジナルデータについて統計処理を行った結果を求めるのであるから、ある時点で、i=1,…,Nのオリジナルデータについての統計処理結果を求め、次の時点で、i=1,…,N,N+1のオリジナルデータについての統計処理結果を求めて、両者の差分を取れば、i=N+1のオリジナルデータを求めることができてしまう。
 そのような時点で演算結果を取得することを禁止することにより、サーバ装置が、実質的に各演算装置から個々の部分データを取得してオリジナルデータを復元するような、悪意のある動作を行わないことを担保することが可能になる。
 上記のサーバ装置において、それぞれが前記オリジナルデータを取得して前記部分データを生成する手段を有する複数のデータ入力装置と通信する手段と、利用可能な演算装置の中から、前記所定の統計処理を行うための前記複数の演算装置を選択する手段と、前記複数のデータ入力装置のそれぞれへ、選択された前記複数の演算装置に対して複数の前記部分データを送信できるように、前記複数の演算装置の情報を通知する手段をさらに備えるようにしてもよい。
 これにより、どのような統計処理の結果を得たいかに応じて、その都度、利用する演算装置を選択することが可能になり、また、データ入力装置の数が多くても、サーバ装置からの通知によって一元的に部分データの送信先を設定することができるため、運用管理が簡単化される。
 本発明の原理に従う一つの例に係るデータ入力装置は、秘匿すべきオリジナルデータを取得する手段と、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割し、所定の個数の部分データを生成する手段と、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置のうちの対応する演算装置への前記複数の入力データの1つとして、前記所定の個数の部分データのそれぞれを、保護された通信路により送信する手段とを備える。そして、前記複数の演算装置のそれぞれが、複数の前記データ入力装置からの部分データに基づいて前記所定の演算を行った結果を、前記複数の演算装置とは異なるサーバ装置が利用することにより、複数の前記データ入力装置により取得された複数の前記オリジナルデータに基づく統計処理の結果が、該オリジナルデータが秘匿されたまま求められる。
 この構成によれば、秘匿すべきオリジナルデータが漏洩するリスクを低減しつつ、サーバ装置が、複数の演算装置に部分データを入力とする演算を行わせ、その結果を利用することで、オリジナルデータの集合についての統計処理の結果を得ることが可能になる。
 上記のデータ入力装置において、送信した前記所定の個数の部分データを、それぞれ対応する前記演算装置に、許可された者からのみアクセスできるように保存させる手段と、取得した前記オリジナルデータの記憶を消去する手段とをさらに備えるようにし、前記オリジナルデータは、前記許可された者によりそれぞれ対応する前記演算装置に取得された前記所定の個数の部分データに基づいて復元されるものとしてもよい。
 これにより、本来の保有者が後でオリジナルデータを取得したい場合への備えを、データ入力装置においてオリジナルデータを保存するのではなく、複数の演算装置に分散して保存されている部分データを取得してオリジナルデータを復元可能とすることにより、実現することができるため、秘匿すべき情報が漏洩するリスクを確実に低減することが可能になる。
 上記のデータ入力装置において、前記サーバ装置にアクセスするための情報を記憶する手段と、前記対応する演算装置を特定するための情報を前記サーバ装置から受信する手段とをさらに備えるようにしてもよい。
 これにより、データ入力装置は、サーバ装置にアクセスするための情報さえ記憶していれば、オリジナルデータを幾つに分割してどのように部分データを生成し、どの複数の演算装置へ渡すか等を、サーバ装置からの指定に従って行うことが可能になる。
 上記のデータ入力装置において、前記部分データに、システムにおいて一意となる識別情報を付与する手段と、前記識別情報に基づいて求められる値が、前記複数の演算装置のそれぞれが担当する範囲のうちのいずれの範囲に属するかに従って、前記対応する演算装置を特定する手段とをさらに備えるようにしてもよい。
 これにより、データ入力装置は、自身で、各部分データの送信先となる演算装置を決定することが可能になり、サーバ装置が、各オリジナルデータに関係する情報を取り扱わないようにすることができるとともに、一つのオリジナルデータから得られる各部分データが、それぞれ異なる演算装置に送信されるようにすることも可能になり、さらなるデータの安全性を実現することができる。
 上記のデータ入力装置において、一つのオリジナルデータから得られる部分データの全てがいずれかの演算装置に受信されたことを確認した後に、確認済みであることを示す情報をいずれかの演算装置へ送信して登録する手段をさらに備えるようにしてもよい。
 この構成と、以下に例示する各演算装置の構成とにより、各演算装置が有する部分データのうち、統計処理の対象に含めてしまうと結果に誤差等が生じる部分データを、演算から外すことが可能になる。
 本発明の原理に従う一つの例に係る演算装置は、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置と通信する手段と、それぞれが前記オリジナルデータを自装置の内部に秘匿する手段を有する複数のデータ入力装置から、複数の前記オリジナルデータのそれぞれに属する部分データを受信する手段と、複数の入力データに基づいて所定の演算を行う手段とを備える。そして、前記サーバ装置は、複数の前記演算装置からの演算結果に基づいて、所定の統計処理を行うものであり、前記演算装置は、前記複数のデータ入力装置から受信した複数の前記部分データのうち、該部分データに対応して、一つのオリジナルデータから得られる部分データの全てがいずれかの演算装置に受信されたことが確認済みであることを示す情報が登録されているものを、前記入力データとして選択する手段と、選択された前記入力データについての前記所定の演算の結果を、前記サーバ装置へ送信する手段とをさらに備える。
 上述したデータ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置の発明は、それぞれ互いに他の要素の発明としても、本システム全体もしくは個々の装置において行なわれる方法の発明としても、汎用のコンピュータシステムを本システムとして動作させるためのプログラム(又はそのプログラムを記録した記録媒体)の発明としても、汎用のコンピュータを個々の装置として動作させるためのプログラム(又はそのプログラムを記録した記録媒体)の発明としても、勿論成立するものである。以下に、そのうちの幾つかを例示する。
 本発明の原理に従う一つの例に係るプログラムは、他のコンピュータと通信する機能を有するコンピュータを、データ秘匿型統計処理システムにおけるデータ処理装置として動作させるためのプログラムである。前記他のコンピュータとして、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置があり、前記データ処理装置は、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するものである。そして、前記プログラムは、前記コンピュータに、前記複数の演算装置のそれぞれに、前記オリジナルデータの部分データを前記入力データとして演算を行わせ、該演算の結果を取得する手段と、前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行う手段を備えさせるものであり、複数の前記部分データは、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割することにより、生成されたものである。
 本発明の原理に従う別の例に係るプログラムは、秘匿すべきオリジナルデータを取得する機能と他のコンピュータと通信する機能とを有するコンピュータを、データ秘匿型統計処理システムにおけるデータ入力装置として動作させるためのプログラムである。前記他のコンピュータとして、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置がある。そして、前記プログラムは、前記コンピュータに、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割し、所定の個数の部分データを生成する手段と、前記所定の個数の部分データのそれぞれを、前記複数の演算装置のうちの対応する演算装置への前記複数の入力データの1つとして、保護された通信路により送信する手段とを備えさせるものであり、前記複数の演算装置のそれぞれが、複数の前記データ入力装置からの部分データに基づいて前記所定の演算を行った結果を、前記複数の演算装置とは異なるサーバ装置が利用することにより、複数の前記データ入力装置により取得された複数の前記オリジナルデータに基づく統計処理の結果が、該オリジナルデータが秘匿されたまま求められる。
 本発明の原理に従うさらに別の例に係るプログラムは、他のコンピュータと通信する機能を有するコンピュータを、データ秘匿型統計処理システムにおける複数の演算装置のうちの一つとして動作させるためのプログラムである。前記他のコンピュータとして、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置と、それぞれが前記オリジナルデータを自装置の内部に秘匿する手段を有する複数のデータ入力装置とがある。そして、前記プログラムは、前記コンピュータに、前記複数のデータ入力装置から、複数の前記オリジナルデータのそれぞれに属する部分データを受信する手段と、複数の入力データに基づいて所定の演算を行う手段と、前記複数のデータ入力装置から受信した複数の前記部分データのうち、該部分データに対応して、一つのオリジナルデータから得られる部分データの全てがいずれかの演算装置に受信されたことが確認済みであることを示す情報が登録されているものを、前記入力データとして選択する手段と、選択された前記入力データについての前記所定の演算の結果を、前記サーバ装置へ送信する手段とを備えさせるものであり、前記サーバ装置は、前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行うものである。
 本発明の原理に従う一つの例に係る統計処理結果提供サービス方法は、秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置のそれぞれが、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割して得られた所定の個数の部分データを出力し、複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置のそれぞれが、複数の前記データ入力装置のそれぞれから出力された前記部分データを前記入力データとして前記演算を行った結果を出力し、データ処理装置が、前記複数の演算装置のそれぞれから出力された前記演算の結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める。
 以下、本発明の実施の形態について、例示のために、図面を用いて説明する。本システムは、プライバシ保護を考慮したクラウド型のデータ処理を行うためのシステムである。
 現在、多数のセンサやICカードが普及しており、例えば、車は数億台、スマートフォンは十億台超、センサは数十億~数兆個という、膨大な数のデータ生成源(本システムにおけるデータ入力デバイスとなり得るもの)が存在する。これらを対象とするM2M(マシンtoマシン)型のサービスも、種々考案されている。
 これらのサービスの多くが、データの蓄積と解析処理を、データの本来の所有者ではない第三者がリソースを提供するクラウドを利用して、行うことが想定される。そうすると、クラウドにおいて扱われるデータには、プライバシ情報が大量に含まれることになり、データがクラウドの外部へ流出したときの情報漏洩のリスクが、より深刻になる。したがって、クラウドを利用する際には、情報漏洩のリスクを低減するために、クラウドにおけるデータの蓄積から解析処理まで通して、クラウド上のデータを秘匿化した状態にすることが、強く望まれる。
 そこで、本システムでは、データ生成源からオリジナルデータを集める際に、オリジナルデータを秘匿化できるような分割(以下、「秘匿分割」ということがある)を行う。そして、オリジナルデータはどこへも渡さず、分割されたデータを複数のクラウドへ渡して、蓄積及び解析処理をさせる。このようにすれば、単一のクラウドからデータが流出しても、そこからオリジナルデータを復元することはできなくなる。
 そして、本システムでは、各クラウドで個別に、統計解析処理を行い、クラウドとは別の解析事業者(「統計処理結果提供サービス事業者」ともいう)が、各クラウドの処理結果を集めて、本来の統計処理の結果を得る。ここで、各クラウドサービスを提供する事業者は、複数のクラウドから一度にデータが流出する可能性を低くするためにも、複数のクラウド上のデータを合わせてオリジナルデータを導き出そうとする試みをさせないためにも、別々の事業者とすることが好ましい。どのクラウドサービスを利用するかは、解析事業者もしくはデータ生成源の所有者が決めればよい。
 なお、クラウドサービスでは一時的な計算資源の利用も可能であるため、本システムを、データの永続保存が不要(オリジナルデータの復元が不要)な場合に適用する際には、クラウドサービスを用いて必要なときに必要なだけの計算資源を確保し、演算処理を行ったのち、不要になった計算資源を開放する(その演算処理のために保存した部分データを全て消去する)ようにしてもよい。これにより、より情報漏洩に対する安全性を高めることができることに加えて、物理的に冗長な計算資源を維持せずに済むようにすることが可能である。
 解析事業者は、データ生成源の所有者とは異なる者でもよいし、例えば、一つの企業が自身の所有する多数のデータ生成源からのデータについて第三者のクラウドサービスを利用して蓄積及び解析処理を行う場合には、解析事業者がデータ生成源を所有する企業自身であってもよい。各データ生成源の所有者がそれぞれ異なる個人であって、解析事業者とも、解析事業者による統計処理結果を提供される利用者企業とも、異なるという応用例もあり得る。
 本システムでは、このようにオリジナルデータを秘匿分割して複数のクラウドに分散させた状態を保ちながら処理を行って、多数のオリジナルデータの総和、2乗和、内積等を求めることができる。例えば、総和と2乗和が求められるだけでも、統計処理として、平均値や分散値を求めたり、基本的な推定や検定を行ったりすることができるため、多様な応用が可能である。しかも、オリジナルデータをどこにも存在させず、秘匿分割された状態のまま、且つ、一つのオリジナルデータから秘匿分割により生成された複数のデータが一箇所に集まることなく分散された状態のまま、統計処理の結果を求められるため、安全性を十分に高くすることが可能である。
 図1は、各オリジナルデータを2つに分割して、N個のオリジナルデータの総和を求める本システムの例を示している。図中、説明のため、各々のデータ入力デバイス10-1~10-Nが、各々のオリジナルデータx1~xNを分割して、クラウドサービス設備30-1及び30-2へアップロードするように描かれているが、本システムでは、1つのデータ入力デバイスが複数のオリジナルデータについて、取得、秘匿分割、アップロードを行うことも、勿論可能である。なお、Nは、2以上の整数であり、億や兆の単位の数とすることも可能である。
 各々のデータ入力デバイス10-iは、オリジナルデータxiを取得すると、xi=x1i+x2iを満たすようにxiを分割する。どのような比率で分割するかは、その都度、デバイス内で乱数を発生させる等により、ランダムに定め、その比率は、秘密とする(この処理を、「ランダムシェアによる秘匿分割」という)。
 これにより、個々のx1i,x2iは、xiについて完全秘匿性を持つことになる(このことを、「H(xi|x1i)=H(xi)&H(xi|x2i)=H(xi)」と表す)。これにより、単一のクラウドにおけるデータ流出ではオリジナルデータを復元できないことが、担保される。
 そして、各々のデータ入力デバイス10-iは、第1のクラウドサービス設備30-1へ部分データx1iをアップロードし、第2のクラウドサービス設備30-2へ部分データx2iをアップロードする。
 各々のクラウドサービス設備30-jは、アップロードされてきたデータを保存する。各データ入力デバイスからのアップロードのタイミングはそれぞれ任意の時点でよく、ある時点で、第1のクラウドサービス設備30-1にはN個の部分データ{x11,x12,…,x1N}が保存されており、第2のクラウドサービス設備30-2にはN個の部分データ{x21,x22,…,x2N}が保存されている状態になる。
 この時点で、第1のクラウドサービス設備30-1は、N個の部分データx1iの総和を計算した結果f(X1)を統計処理結果提供サーバ50へ送信し、第2のクラウドサービス設備30-2は、N個の部分データx2iの総和を計算した結果f(X2)を統計処理結果提供サーバ50へ送信する。Nが膨大な数である場合、クラウド上の計算機リソースを使って処理ができることも、重要な利点となる。
 統計処理結果提供サーバ50は、送信されてきた結果について、総和を求める処理を行う。「f(X1)+f(X2)」の値は、(x1i+x2i)のiを1からNまで合計した値と等しくなるから、オリジナルデータxiの総和を求めたことになる。本システムにより提供されるサービスの利用者は、統計解析の結果のみを参照する。
 なお、統計処理結果提供サーバ50は、各クラウドからN個の部分データについて計算処理を行った結果であるf(Xi)のみを取得し、個々の部分データには関知しないため、統計処理結果提供サーバ50を運営する解析事業者に対しても、オリジナルデータの秘匿性を高く保つことが可能である。
 図1は、各オリジナルデータを2個に分割する例であるが、図2は、各オリジナルデータをm個(2より多い数)に分割して、N個のオリジナルデータの総和を求める本システムの例を示している。図2の場合、m箇所の独立した異なるクラウド上で、分散して処理を行うことになる。
 各々のデータ入力デバイス10-iは、オリジナルデータxiを取得すると、xi=x1i+x2i+…+xmiを満たすようにxiを分割する。どのような比率で分割するかは、その都度、デバイス内で乱数を発生させる等により、ランダムに定め、その比率は、秘密とする。
 このランダムシェアによる秘匿分割により、個々のx1i,x2i,…,xmiは、xiについて完全秘匿性を持ち、また、例えば、x1i~x(m-1)iの値が分かっても、xmiの値が分からなければ、xiを復元できないことから、同時に (m-1) 箇所のデータ流出があっても、秘匿性は維持されることになる。
 そして、各々のデータ入力デバイス10-iは、m個のクラウドサービス設備30-jのそれぞれへ対応する部分データxjiをアップロードする。アップロードのタイミングはデータ入力デバイス毎に独立としてよいが、ある時点で、いずれのクラウドサービス設備30-jにもN個の部分データ{xj1,xj2,…,xjN}が保存されている状態になる。
 この時点で、各々のクラウドサービス設備30-jは、N個の部分データxjiの総和を計算した結果f(Xj)を統計処理結果提供サーバ50へ送信する。統計処理結果提供サーバ50は、送信されてきた結果について、総和を求める処理を行う。「f(X1)+f(X2)+…+f(Xm)」の値は、(x1i+x2i+…+xmi)のiを1からNまで合計した値と等しくなるから、オリジナルデータxiの総和を求めたことになる。
 図3は、各オリジナルデータを2つに分割して、N個のオリジナルデータの2乗和を求める本システムの例を示している。図1では、iが1からNまでのxiの総和を求める処理をf(Xi)と記述しているが、図3及び図4では、同じ総和を求める処理をfΣ(Xi)と表し、iが1からNまでのxiの2乗和を求める処理をfS(Xi)と記述する。
 また、図3では、統計処理結果提供サーバ50が、第1のクラウドサービス設備30-1からの2乗和fS(X1)と、第2のクラウドサービス設備30-2からの2乗和fS(X2)と、第3のクラウドサービス設備30-3からの総和fΣ(X12)とを用いて、N個のオリジナルデータの2乗和fS(X)を求める点を説明しているが、同時に、第1のクラウドサービス設備30-1からの総和fΣ(X1)と、第2のクラウドサービス設備30-2からの総和fΣ(X2)とを用いて、N個のオリジナルデータの総和fΣ(X)を求めることも可能である。
 各々のデータ入力デバイス10-iは、オリジナルデータxiを取得すると、ランダムシェアによる秘匿分割を行い、xiはxi=x1i+x2iを満たすように分割される。統計処理の結果として2乗和を求めたい場合、各データ入力デバイス10-iはさらに、x1iとx2iを乗算した値を求めて、x1i,x2i,x1i2iの3つを、xiの部分データとして生成する。図3のようにx1i2iをも生成してアップロードすべきか、図1のようにx1iとx2iだけでよいかを、統計処理結果提供サーバ50が各データ入力デバイス10-iに指示するようにしてもよい。
 そして、各々のデータ入力デバイス10-iは、第1のクラウドサービス設備30-1へ部分データx1iをアップロードし、第2のクラウドサービス設備30-2へ部分データx2iをアップロードし、第3のクラウドサービス設備30-3へ部分データx1i2iをアップロードする。この場合、3つのクラウドのうちの1つにおいてデータが流出しても、オリジナルデータは復元されない。
 各々のクラウドサービス設備30-jは、アップロードされてきたデータを保存する。各データ入力デバイスからのアップロードのタイミングはそれぞれ任意の時点でよく、ある時点で、第1のクラウドサービス設備30-1にはN個の部分データ{x11,x12,…,x1N}が保存されており、第2のクラウドサービス設備30-2にはN個の部分データ{x21,x22,…,x2N}が保存されており、第3のクラウドサービス設備30-3にはN個の部分データ{x1121,x1222,…,x1N2N}が保存されている状態になる。
 この時点で、第1のクラウドサービス設備30-1は、N個の部分データx1iの総和と2乗和をそれぞれ計算した結果fΣ(X1)とfS(X1)を統計処理結果提供サーバ50へ送信し、第2のクラウドサービス設備30-2は、N個の部分データx2iの総和と2乗和をそれぞれ計算した結果fΣ(X2)とfS(X2)を統計処理結果提供サーバ50へ送信し、第3のクラウドサービス設備30-3は、N個の部分データx1i2iの総和と2乗和をそれぞれ計算した結果fΣ(X12)とfS(X12)を統計処理結果提供サーバ50へ送信する。
 統計処理結果提供サーバ50は、送信されてきた結果の中から、fS(X1)とfS(X2)とfΣ(X12)とを選択して、fΣ(X12)については2倍した上で、これら全てを合計する処理を行う。「fS(X1)+2fΣ(X12)+fS(X2)」の値は、(x1i+x2i2のiを1からNまで合計した値と等しくなるから、オリジナルデータxi 2の総和(即ちxiの2乗和)を求めたことになる。
 図3の構成において、統計処理結果提供サーバ50が、送信されてきた結果の中から、fΣ(X1)とfΣ(X2)とを選択して、総和を求める処理を行えば、オリジナルデータxiの総和が求められる。いずれの場合も、第3のクラウドからのfS(X12)の結果は用いられないし、2乗和のみを求める場合、第1及び第2クラウドからのfΣ(Xj)の結果は用いられない。また、図3の構成で総和のみを求める場合、第1及び第2クラウドからのfS(Xj)の結果は用いられず、第3のクラウドからのいずれの結果も用いられないことになる。
 結果が用いられない計算処理を行うことはリソースの浪費とも捉えられるが、クラウド上には豊富な計算機リソースがあることに加え、統計処理結果提供サーバ50で行いたい統計処理の内容に関わらず、各クラウドにおける計算処理の内容を同一にすることには、以下の利点がある。
 図3の構成では、各クラウドサービス設備30-jは、アップロードされてきたデータが、xiを分割した部分xjiであるのか、2つの部分を乗算したxjikiであるのか、さらにいえばオリジナルデータなのか部分データなのかさえ、関知することなく、単に、入力されたデータに対して、iが1からNまでの総和及び2乗和を計算するという処理を、画一的に行う。よって、各クラウドにおいて行われる計算処理の内容から、統計処理結果提供サーバ50で行われる統計処理の内容や、各クラウドに保存されているデータの意味等を推測されることがなく、安全性をより高めることが可能である。
 図3は、各オリジナルデータを2個に分割する例であるが、図4は、各オリジナルデータをm個(2より多い数)に分割して、N個のオリジナルデータの2乗和を求める本システムの例を示している。図4の場合、2m箇所の独立した異なるクラウド上で分散して処理を行うことになる。この場合、2m個のクラウドのうちの(m-1)個においてデータが流出しても、オリジナルデータは復元されない。
 各々のデータ入力デバイス10-iは、オリジナルデータxiを取得すると、ランダムシェアによる秘匿分割を行い、xi=x1i+x2i+…+xmiを満たすようにxiを分割する。そして、まず、m個の部分データxji(j=1,2,…,m)を生成する。
 各データ入力デバイス10-iはさらに、xjiの値とxji以外のxkiを合計した値とを乗算した値をx’jiとして、m個の部分データx’ji(j=1,2,…,m)を生成する。例えば、m=4であれば、x’1i=x1i2i+x1i3i+x1i4iと、x’2i=x2i1i+x2i3i+x2i4iと、x’3i=x3i1i+x3i2i+x3i4iと、x’4i=x4i1i+x4i2i+x4i3iとを生成する。
 そして、各々のデータ入力デバイス10-iは、m個のクラウドサービス設備30-j(j=1,2,…,m)のそれぞれへ対応する部分データxjiをアップロードし、さらにm個のクラウドサービス設備30-j(j=m+1,m+2,…,m+m)のそれぞれへ対応する部分データx’jiをアップロードする。アップロードのタイミングはデータ入力デバイス毎に独立としてよいが、ある時点で、いずれのクラウドサービス設備30-jにもiが1からNまでのN個の部分データが保存されている状態になる。
 この時点で、各々のクラウドサービス設備30-jは、N個の部分データ(j=1~mについてはxji、j=m+1~2mについてはx’jiになるが、各クラウドはその相違を関知しない)の総和及び2乗和をそれぞれ計算した結果(j=1~mについてはfΣ(Xi)とfS(Xi)、j=m+1~2mについてはfΣ(X’i)とfS(X’i)になるが、各クラウドはその相違を関知しない)を統計処理結果提供サーバ50へ送信する。
 統計処理結果提供サーバ50は、送信されてきた結果の中から、j=1~mのクラウドからの結果についてはfS(Xi)を、j=m+1~2mのクラウドからの結果についてはfΣ(X’i)を選択して、これら全てを合計する処理を行う。「fS(X1)+fS(X2)+…+fS(Xm)+fΣ(X’1)+fΣ(X’2)+…+fΣ(X’m)」の値は、(x1i+x2i+…+xmi2のiを1からNまで合計した値と等しくなるから、オリジナルデータxi 2の総和(即ちxiの2乗和)を求めたことになる。
 図4の構成でも、図3と同様に、オリジナルデータxiの総和と2乗和の両方を求めることができ、各クラウドから出力される結果のうち、j=1~mのクラウドからのfΣ(Xi)が総和に利用され、j=1~mのクラウドからのfS(Xi)とj=m+1~2mのクラウドからのfΣ(X’i)とが2乗和に利用されることになる。
 上述したように総和と2乗和が得られると、以下に例示するように、基本的な統計解析手法への幅広い応用が可能になる。
 標本平均mは、m=σ/N=fΣ(X)/Nにより求めることができ、最尤推定は、母集団が正規分布に従うとき、母集団に最尤平均値=mとして行うことができる。
 標本分散s2は、s2=(S-σ2)/N=(fS(X)-{fΣ(X)}2)/Nにより求めることができ、標準偏差sは、標本分散s2の正の平方根として求めることができる。
 T分布を用いた区間推定は、T=(m-μ)/(s/N1/2) が自由度(N-1)のt分布に従うことから、例えば、母平均μの信頼度95%の信頼区間を、
  m-1.96×s/N1/2≦μ≦m+1.96×s/N1/2
と推定することができる。以上により、母集団の平均を推定することが可能になる。
 母比率の信頼区間の推定は、標本比率r(例えば、N人のうちr人がYESと答えた)が、r=fΣ(X)により求められると、母比率Rの95%信頼区間を、
  r-1.96×(r(1-r)/N)1/2≦R≦r+1.96×(r(1-r)/N)1/2
と推定することができる。これは、YES/NOや選択式(又は機械のon/off)の統計データに応用することができる。
 母分散の推定は、母集団は分散σ2の正規分布で、N個の標本の不偏分散をs2とすると、Z=(N-1)×s2/σ2が自由度(N-1)のχ2分布に従うことから、母分散σ2につき、同分布の下側95%点k1、上側95%点k2との関係が、
  (N-1)×s2/k2≦σ2≦(N-1)×s2/k1
となることが推定することができる。これにより、母集団のばらつきを推定することが可能になる。
 母平均の検定(t検定)は、T=(m-μ)/(s/N1/2) が自由度(N-1)のt分布に従うことを応用して、行うことができる。また、母集団A,Bに関する母平均の差の検定は、T=(mA-mB)/(Z1 1/2×Z2 1/2)が自由度(NA+NB-2)のt分布に従うことを応用して、行うことができる。但し、
  Z1=1/NA+1/NB
  Z2=((NA-1)×sA 2+(NB-1)×sB 2)/(NA+NB-2)
である。これにより、母集団の平均を検定することが可能になる。
 母比率の検定(χ2検定)は、χ2=(N-1)×s2/σ2 は自由度(N-1)のχ2分布に従うことを応用して、行うことができる。また、母集団A,Bの母分散の比較検定(F検定)は、F=(sA 2/σA 2)/(sB 2/σB 2)が自由度kA,kBのF分布に従うことから、母分散が同じであると仮定すると、F=sA 2/sB 2が自由度NA-1,NB-1のF分布に従うことを応用して、行うことができる。これにより、母集団のばらつきを検定することが可能になる。
 一次元配置の分散分析は、例えば、施策1,2,…,kに効果の差があるかどうかを検討するために行うことができ、全体平均m=ΣiΣjij/N(但し、N=Σii)、グループ平均mi=Σjij/Ni、グループ間変動Q1=Σi(mi-m)2、グループ内変動Q2=ΣiΣj(xij-mi2 であるとき、F=Q1/Q2は自由度(k-1),k×(N-1)のF分布に従うことを応用して、行うことができる。これは、例えば、施策、投薬、改修、改善、キャンペーン、広告等の取り組みの効果を確認する際に有効である。
 二次元配置の分散分析は、上述した一次元配置の分散分析の簡単な拡張から、繰り返し有りと繰り返し無しの両方のケースについて、行うことができる。これは、複数の取り組みの組合せによる効果を確認する際に有効である。
 以上、一つの要素に対する統計解析について説明したが、本システムは、複数の要素に対する統計解析にも、適用可能である。例えば、2つの要素への応用として、内積、共分散、相関係数、さらには、回帰方程式、決定係数等を求めることも可能である。
 図5は、2つの要素の各オリジナルデータxi,yiをそれぞれ2つに分割して、N対のオリジナルデータの内積を求める本システムの例を示している。図5は、各オリジナルデータを2個に分割する例であるが、各オリジナルデータをm個(2より多い数)に分割して、m2個の独立した異なるクラウド上で分散して処理を行うことにより、N対のオリジナルデータの内積を求めることも、勿論可能である。
 第1の要素に属するオリジナルデータxiを取得する各々のデータ入力デバイス10-iは、取得したオリジナルデータxiに対してランダムシェアによる秘匿分割を行い、xiはxi=x1i+x2iを満たすように分割される。第2の要素に属するオリジナルデータyiを取得する各々のデータ入力デバイス20-iは、取得したオリジナルデータyiに対してランダムシェアによる秘匿分割を行い、yiはyi=y1i+y2iを満たすように分割される。
 そして、各々のデータ入力デバイス10-iは、第1及び第2のクラウドサービス設備30-1,2へ部分データx1iをアップロードし、第3及び第4のクラウドサービス設備30-3,4へ部分データx2iをアップロードし、各々のデータ入力デバイス20-iは、第1及び第3のクラウドサービス設備30-1,3へ部分データy1iをアップロードし、第2及び第4のクラウドサービス設備30-2,4へ部分データy2iをアップロードする。
 各々のクラウドサービス設備30-jは、アップロードされてきたデータを保存する。各データ入力デバイスからのアップロードのタイミングはそれぞれ任意の時点でよく、ある時点で、第1のクラウドサービス設備30-1には第1の要素のN個の部分データ{x11,x12,…,x1N}及び第2の要素のN個の部分データ{y11,y12,…,y1N}が保存されており、第2のクラウドサービス設備30-2には第1の要素のN個の部分データ{x11,x12,…,x1N}及び第2の要素のN個の部分データ{y21,y22,…,y2N}が保存されており、第3のクラウドサービス設備30-3には第1の要素のN個の部分データ{x21,x22,…,x2N}及び第2の要素のN個の部分データ{y11,y12,…,y1N}が保存されており、第4のクラウドサービス設備30-3には第1の要素のN個の部分データ{x21,x22,…,x2N}及び第2の要素のN個の部分データ{y21,y22,…,y2N}が保存されている状態になる。
 この時点で、第1のクラウドサービス設備30-1は、N対の部分データx1iとy1iの内積を計算した結果fP(X1,Y1)を統計処理結果提供サーバ50へ送信し、第2のクラウドサービス設備30-2は、N対の部分データx1iとy2iの内積を計算した結果fP(X1,Y2)を統計処理結果提供サーバ50へ送信し、第3のクラウドサービス設備30-3は、N対の部分データx2iとy1iの内積を計算した結果fP(X2,Y1)を統計処理結果提供サーバ50へ送信し、第4のクラウドサービス設備30-4は、N対の部分データx2iとy2iの内積を計算した結果fP(X2,Y2)を統計処理結果提供サーバ50へ送信する。
 統計処理結果提供サーバ50は、送信されてきた結果の全てを合計する処理を行う。「fP(X1,Y1)+fP(X1,Y2)+fP(X2,Y1)+fP(X2,Y2)」の値は、(x1i+x2i)と(y1i+y2i)を乗算した値をiが1のものからNのものまで合計した値と等しくなるから、オリジナルデータxiとyiの内積を求めたことになる。
 上述したように内積、さらに必要に応じて総和及び2乗和が得られると、以下に例示するように、様々な統計解析手法への幅広い応用が可能になる。
 共分散CovXYは、mX,mYをそれぞれX,Yの標本平均として、
  CovXY=1/N×Σ(xi-mX)(yi-mY
であり、mX=fΣ(X)/N,mY=fΣ(Y)/Nであるから、
  CovXY=(fP(X,Y)-fΣ(X)fΣ(Y))/N
として求められる。
 相関係数CCXYは、sX,sYをそれぞれX,Yの標本偏差として、
  CCXY=CovXY/sXY
として求められる。ここで、sX=[(fS(X)-{fΣ(X)}2)/N]1/2,sY=[(fS(Y)-{fΣ(Y)}2)/N]1/2である。
 そして、上述したように、平均mX,mY、分散sX 2,sY 2、共分散CovXYが求められれば、回帰分析における1次式の係数を求める公式への応用が可能であり、変動、残差平方和、決定係数も計算可能である。
 図6は、図1~5を参照して説明した本システムが採り得る構成の一例を示している。データ入力デバイス10-1~10-N(図示しないが、内積を求める場合の20-1~20-Nも、同様の構成を有する)と、クラウドサービス設備30-1~30-Mと、統計処理結果提供サーバ50とが、ネットワーク40(例えば、インターネット)を介して接続されている。
 なお、各データ入力デバイス10と各クラウドサービス設備30との間、各クラウドサービス設備30と統計処理結果提供サーバ50との間、統計処理結果提供サーバ50と各データ入力デバイス10との間に、それぞれ別個の通信網(例えば、無線網と有線網等)がある構成としてもよい。
 それぞれの間の通信の安全性に関しては、現存する十分な安全性を持った通信の暗号化を行う。特に、各データ入力デバイス10と各クラウドサービス設備30との間は、個々の通信は、分割されたデータしか含んでいないが、あるデータ入力デバイスからm個のクラウドサービス設備への通信の全てを傍受すれば、オリジナルデータが復元できてしまうことから、例えば、オンラインショッピングや電子決済、商取引、ネットバンキング等などで利用されているのと同程度の安全性を持った暗号化技術を用いることが好ましい。
 図6に示すとおり、各データ入力デバイス10は、データ取得部110と、取得したオリジナルデータを秘匿分割する秘匿分割部120と、秘匿分割により得られた部分データを暗号化された通信路で各クラウドサービス設備30へアップロードするアップロード部130を備える。データ取得部110は、機器が自動的にオリジナルデータを生成するものでもよいし、人間がオリジナルデータを入力するのでもよいし、別のデータベース等からオリジナルデータを抽出するのでもよい。
 各データ入力デバイス10の備える制御部140は、統計処理結果提供サーバ50中の管理部(管理サーバ)500からの指示に従って、秘匿分割部120におけるデータの分割数や生成すべき部分データの種類を制御する。制御部140はまた、管理サーバ500からの指示に従って、アップロード部130における各部分データのアップロード先を制御する。
 但し、アップロード先となるクラウドサービス設備が予め決まっている場合は、統計処理結果提供サーバ50と通信することなく、制御部140の内部に埋め込まれている制御情報に従って、これらの制御を行えばよい。
 各クラウドサービス設備30は、各データ入力デバイス10からアップロードされたデータを保存するデータ保存部310と、保存された多数の部分データについて総和(322)、2乗和(324)、内積(326)等の演算処理を行う計算部320を備える。いずれの演算処理も、データ入力デバイスの数Nに対して計算量O(N)で演算が可能であり、億や兆のような単位の大きな数のNに対しても、実用的なレベルでシステムをスケール(拡張)することができる。
 なお、計算部320は、本システムの用途に応じて必要な演算処理だけを備えれば十分であり、例えば、内積を求める用途には使わないことが予め決まっている場合は、内積演算部は備えなくてよい。あるいは、用途の拡大に備えて、計算部320に、種々の演算部を構成可能にしておき、管理サーバ500からの指示に従って、統計処理毎に用いる演算部を選択するようにしてもよい。
 各クラウドサービス設備30の備える制御部330は、統計処理結果提供サーバ50中の管理部(管理サーバ)500からの指示に従って、計算部320が所定の演算処理を行うタイミングと、その演算処理の対象としてデータ保存部310から読み出すべきデータとを特定する。
 各データ入力デバイス10は、例えば、コンピューティング機能を有する機器に本方式のためのプログラムをインストールすることにより、構成される。その機器は、汎用のコンピュータでも、プログラムが予め組み込まれて製造される専用の機器でもよい。秘匿分割前にオリジナルデータを一時記憶している部分や、秘匿分割のための秘密の比率を使用する部分等については、特に、ハードウェア又はソフトウェア上のセキュリティを高めたモジュール内に設けるようにしてもよい。
 各データ入力デバイス10が、専用の機器で、記憶容量が少ない場合等には、機器内に埋め込んでおく初期情報を最小限にするため、統計処理を司るマネージャ(管理サーバ500)のアドレス(URLもしくはIPアドレス等)と、マネージャとの通信を暗号化するための鍵(公開鍵方式又は共通鍵方式)とを初期情報とし、各クラウド30のアドレス等は、マネージャを利用して取得するようにしてもよい。
 各クラウドサービス設備30は、一般に提供されているクラウドサービスの設備を利用して、実現することができる。
 統計処理結果提供サーバ50は、例えば、汎用のサーバに本方式のためのプログラムをインストールすることにより、構成可能であり、統計処理結果提供サービス自体を、クラウド上の計算サービスとして実現してもよい。
 図7は、統計処理結果提供サーバ50の内部構成の一例を示している。統計処理結果提供サーバ50は、統計処理部570とともに、各データ入力デバイス10や各クラウドサービス設備30を制御する機能を備える管理部(管理サーバ)500と、その統計処理の結果を利用者へ提供するための結果提供インタフェース590を備える。
 統計処理結果提供サーバ50が、独立の複数の利用者に対して結果を提供するために、独立の複数の統計処理を行うことを可能とする場合、各々の統計処理について、管理サーバ500の機能が設けられることになり、その各々をマネージャと呼ぶ。例えば、各マネージャに異なるURLを割り当てる等により、マネージャの識別が可能である。
 図6及び後述する図7における各部の機能は、ハードウェア又はソフトウェア、もしくはハードウェアとソフトウェアの組み合わせにより、実現することができる。複数の統計処理が並存する場合、着目する統計処理1を司るマネージャ50-1が、管理サーバ500として機能する。
 図8~15は、本システムにおける処理手順の一例を説明するためのものである。本例の手順を実現する管理サーバ500が、例えば、図7に示す各部を備えるものとなる。
 本例の手順を開始する前に、統計処理結果提供サービス事業者は、その統計処理のために用いるクラウドの個数と、各クラウドに必要な計算リソース(台数、CPU、メモリ等)を見積もり、本システムの設計を行う。そして、独立なクラウドサービス事業者を必要な個数選択して、クラウドリソースを契約する。その後、以下の手順を行い、必要な統計処理結果を得たら、情報漏洩のリスクを確実になくすため、データを初期化(完全削除)して、クラウドリソースを解約する。
 図8は、マネージャの通知部510と各データ入力デバイス10との間で行われる準備段階の手順を示す。各データ入力デバイスは、予め決められたマネージャに問い合わせ[1]、マネージャは、M個の利用可能なクラウド群の中から、図1の例では2つのクラウドを選択して[2]、その情報を各データ入力デバイスへ通知する[3]。マネージャは、図3~5の例ではどのクラウドにどの種類のデータをアップロードするかを示す情報も、各データ入力デバイスへ通知する[3]。また、マネージャは、処理対象データ利用クラウド登録部520において、各々のオリジナルデータのID(1デバイス1データの場合、データ入力デバイスのIDでもよい)に対応させて、データ入力デバイスへ通知した内容を記憶する[2]。
 図9は、各データ入力デバイス10が、マネージャから通知された内容に従って、秘匿分割[4]により得られた各部分データを各クラウドサービス設備へアップロードする[5][6]手順を示す。各データ入力デバイス10は、部分データに加えて、マネージャのアドレス等の識別情報と、データのIDも、アップロードする。なお、[5]と[6]は、同時に行っても、時間差を設けて行ってもよく、また、各データ入力デバイス10における[4]~[6]の実行タイミングは、独立でよい。つまり、データ入力デバイス間で同期を取る必要はなく、各々のデータ入力デバイス10でオリジナルデータ取得されたタイミングで、[4]~[6]が実行される。
 図10は、各クラウドサービス設備30が、それぞれのタイミングで、マネージャのアップロード状態把握部530へ、アップロードされたデータのIDを通知する[8][9]手順を示す。これらの通知を受けたマネージャは、処理対象データ利用クラウド登録部520において各データIDに対応させて登録されている複数のクラウドのうち、通知されたクラウドにアップロード済みのマークを付す等により、状態一時記憶部530に、登録された複数のクラウドの一部から通知を受けた状態になったデータIDについて、その状態を記憶する[9]。これにより、マネージャは、部分データ自体を受信することなく、どのデータの部分データがどのクラウドに保存されたかを管理することが可能になる。
 図11は、マネージャの計算対象データ特定部550が、各クラウドサービス設備30との間で、全てのクラウドに部分データが受信されているデータIDを共有するための手順を示す。マネージャは、状態一時記憶部530に記憶されているデータIDが、登録されている全てのクラウドから通知を受けている状態になると、そうなったデータID又はデータID群に対応するシーケンス番号を払い出し、シーケンス情報登録部560に、払い出したシーケンス番号とそのID又はID群とを登録する[10]。そして、登録されたID又はID群の記憶を状態一時記憶部530から消去する[10]。
 マネージャの計算対象データ特定部550は、その後、所定のタイミングで、シーケンス番号と対応するID又はID群とを、各クラウドサービス設備30に通知する[11]。この通知は、シーケンス番号が払い出される毎に行ってもよいし、幾つかのシーケンス番号の情報をまとめて通知するようにしてもよい。各クラウドサービス設備30は、自身が保存しているアップロードされた部分データのIDと、通知されたシーケンス番号との対応を記憶する[12]。
 図9に示すように、例えば、ID=3の部分データが、クラウドBには届いているが、クラウドAには届いていない場合、図10に示す管理により、図11で、クラウドA及びBの全てに部分データが届いているID=1,2だけが、シーケンス番号=1に対応することが通知される。
 図12は、図9の続きであり、ID=4の各部分データと、ID=5の各部分データが、各データ入力デバイス10での秘匿分割により生成され[13]、各クラウドサービス設備へアップロードされている[14][15]。
 図13は、図12のアップロードを受けた各クラウドが、図10で説明したように、マネージャへの通知を行い[16][17]、マネージャが状態を記憶する[18]様子を示している。
 図14は、図13の通知を受けたマネージャが、図11で説明したシーケンス番号を払い出した後に、登録されている全てのクラウドから通知を受けている状態になったデータID又はデータID群に対応して、新たなシーケンス番号を払い出し[19]、各クラウドへ通知して[20]、対応を記憶させる[21]様子を示している。
 例えば、ID=3の部分データがクラウドBに届かないまま、クラウドA及びBの全てにID=4,5の部分データが届いたとすると、マネージャは、ID=4,5を、新たなシーケンス番号=2に対応させて、登録する。
 ここで、過去に遡って統計処理をする用途がないものであれば、マネージャは、シーケンス番号=1に対応して登録されているID=1,2を、シーケンス番号=2に対応するものとして追加し、シーケンス番号=1についての登録を削除してしまっても構わない。また、各クラウドは、マネージャから通知されたとおり、ID=1,2はシーケンス番号=1に対応し、ID=4,5はシーケンス番号=2に対応するものとして記憶して、後にシーケンス番号=2が指定された場合に、指定されたシーケンス番号及びそれより小さいシーケンス番号に対応するID群のデータが指定されたと解釈してもよいし、その解釈を示すようにシーケンス番号を書き換えて記憶してもよい。
 図15は、マネージャが統計処理の結果を求める段階の手順を示す。マネージャの統計処理部570における計算依頼部575が、部分データを保存する全てのクラウドに対して、現在の(過去に遡って統計処理をする場合には指定した時点の)シーケンス番号を引数として、計算処理をするよう依頼する[22]。このとき、マネージャから各クラウドへ渡される情報は、シーケンス番号のみとすることができる。図3又は図4の例では、各クラウドで行われる処理は、総和及び2乗和の計算である。
 依頼を受けた各クラウドサービス設備30では、既に、指定されたシーケンス番号にどのID群が対応するかが記憶されているため、これらのID群の部分データにつき計算処理を行って、その結果の値をマネージャへ返送する[23]。
 マネージャの統計処理部570における集計部577は、依頼した全てのクラウドから結果が返送されると、それらの値を合計等して、求める統計値を算出する[24]。図3のように、一部のクラウドからの値については2倍する等、どのクラウドからの結果かによってマネージャにおいて行う処理が異なる場合は、処理対象データ利用クラウド登録部520に記憶されているクラウドとアップロードされるデータの種類との対応を示す情報を参照する。
 上述したように、マネージャが管理するシーケンス番号を利用することで、全てのクラウドに部分データが揃ったデータ(上記の例では、ID=1,2,4,5)を対象にして、統計処理の結果を求めることができ、データの整合性が保証される。
 なお、シーケンス番号を利用して、マネージャが、各クラウドに対して、計算処理の対象としてよいデータIDの情報を頻繁に共有することにより、通信の負荷を分散させるとともに、統計処理のために計算を依頼する際のレスポンスを速くすることが可能になる。
 すなわち、データIDの情報共有をせず(計算対象データ特定部550を備えず)に、マネージャが、各クラウドに計算処理を依頼する際に、対象とすべき(全てのクラウドに部分データが揃っている)データIDの全てを通知する(上記の例では、シーケンス番号=2の代わりに、ID=1,2,4,5という情報を通知する)構成でも、本システムを実現することができるが、膨大な数のデータに対して統計処理を行う場合、シーケンス番号を利用した情報共有をしておく方が望ましい。
 本システムにおいては、マネージャと、他の装置との間のAPI(インタフェース)は、オリジナルデータは勿論、オリジナルデータを構成する個々の部分データも、一切、受け渡しされることがないように構成される。また、オリジナルデータを取り扱う各データ入力デバイスと、他の装置との間のAPIは、データ入力デバイスからのアクセスのみが行われ(図8の[1]、図9の[5][6]等)、データ入力デバイスが外部からアクセスされることがないように構成される。そして、オリジナルデータは存在せず秘匿化されているものの、部分データは保持する各クラウドと、他の装置との間のAPIは、クラウドから部分データを取り出すことがないように構成される。これらのAPIによっても、秘匿すべきデータの安全性が保たれる。
 上記のAPIに加えて、マネージャの統計処理部570を、あるシーケンス番号に対応するデータ群についての処理をした後、一定量(例えば、1万等、個々のデータについての推測を事実上不可能にするくらいの大量)以上のデータIDが処理対象として追加されるまでは、次の計算依頼を各クラウドへ送信しない構成とすると、さらに安全である。これは、マネージャが、例えば、シーケンス番号=2(ID=1,2,4,5)の総和を求めた後に、シーケンス番号=3(ID=1,2,4,5,7)の総和を求めると、引き算することにより、追加された個別要素であるID=7のオリジナルデータが求められてしまうためである。
 図6~15で説明した本システムの構成例においては、各データ入力デバイスの生成した各部分データがそれぞれどのクラウドサービス設備に保存されるかという情報を、統計処理結果提供サーバ(マネージャ)が管理しているため、悪意を持った攻撃者に同サーバがクラックされると、各データの所有者や保存場所等のヒントを攻撃者に与える可能性がある。
 そのような可能性までをも低減するためには、各データ入力デバイスと統計処理結果提供サーバが通信することがなく、各データ入力デバイス自身が各部分データを保存するクラウドサービス設備(アップロード先)を決定できるようにして、統計処理結果提供サーバは各データ入力デバイスを特定する情報を取り扱わないようにするとよい。
 具体例としては、各データ入力デバイスが、コンシステントハッシュ(例えば、D.Karger et al. "Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web," Proceedings of the 29th Annual ACM Symposium of Theory of Computing, pp.654-663 (1997)、I.Stoica et al. "Chord: A scalable peer-to-peer lookup service for internet applications," ACM SIGCOMM Computer Communication Review 31(4), p.149 (2001)等を参照)の仕組みを利用して、データの保存先となるクラウドサービス設備を決定することができる。
 図16は、そのように構成した本システムの例であり、図6及び図7の例と同一の符号を付したブロックは、図6及び図7に関して説明したのと同一の機能を有する。
 図16では、データ入力デバイス15-1~15-Nと、クラウドサービス設備35-1~35-Mと、統計処理結果提供サーバ55が、ネットワーク40を介して接続されているが、各データ入力デバイス15と統計処理結果提供サーバ55との間では、通信が行われない。
 各データ入力デバイス15は、データ取得部110と、秘匿分割部120と、秘匿分割により得られた部分データを暗号化された通信路で各クラウドサービス設備35へアップロードするアップロード部130に加えて、コンシステントハッシュによりアップロード先を決定するためのキー生成部160及びハッシュ計算部170を備える。
 各データ入力デバイス15の備える制御部150は、秘匿分割部120におけるデータの分割数や生成すべき部分データの種類を制御することに加えて、キー生成部160に、秘匿分割されたデータ毎に一意となるキー(例えば、UUID(ユニバーサリーユニーク識別子)、IPv6(インターネットプロトコルバージョン6)アドレス等)を生成させ、ハッシュ計算部170に、生成されたキーと、時刻と、シーケンス番号との合計を求めさせ、その合計値から、ハッシュ値を算出させることを行う。
 例えば、各クラウドサービス設備35に、予め所定の範囲を持った値群(range)を割り当てておくことにより、算出されたハッシュ値がそのrangeに含まれるクラウドサービス設備を、データのアップロード先として特定することができる。この仕組みにより、制御部150が、部分データ毎に算出されたハッシュ値に従って、アップロード部130における各部分データのアップロード先を指定することで、各データ入力デバイスは、統計処理結果提供サーバ(マネージャ)に対して、アップロード先となるクラウドを問い合わせる必要がなくなる。
 各クラウドサービス設備35の備える制御部335は、統計処理結果提供サーバ55中の管理部(管理サーバ)505からの指示に従って、計算部320が所定の演算処理を行うタイミングを特定する。その演算処理の対象としてデータ保存部310から読み出すべきデータは、制御部335自身が特定する。
 統計処理結果提供サーバ55は、管理サーバ505と、結果提供インタフェース590とを備える。管理サーバ505は、統計処理部572を備え、各クラウドサービス設備35へ計算処理を依頼し(計算依頼部576)、各依頼に対して返却される計算結果を集計して(集計部578)、統計処理の結果を求める。
 図16における統計処理結果提供サーバ55(管理サーバ505)は、図7の統計処理結果提供サーバ50(管理サーバ500)と異なり、アップロード先のクラウドを各データ入力デバイスに通知するための機能や、アップロード状態を把握したり計算対象となるデータを特定したりするための機能を備えない。よって、統計処理結果提供サーバ55(マネージャ)は、個々のデータに関連するヒントを一切持たない。
 また、マネージャは、自身の行う統計処理について、どのクラウドが利用され得るか(上述したrangeが割り当てられていると各データ入力デバイスが認識しているクラウドがどれか)は把握しており、統計処理を行う際には、利用され得る全てのクラウドに対して総和および2乗和の計算を依頼するが、各クラウドにおける計算がどのデータ入力デバイスからのデータを対象として行われたものかは把握できないため、マネージャに対しても、データのセキュリティを担保することが可能となる。
 さらに、コンシステントハッシュを利用することで、クラウドの数が増えてもスケーラビリティを担保することが可能であり、分散処理に強いシステムを実現することができるという利点もある。
 図17~19は、図16の構成例において、各データ入力デバイスXiが、取得したデータAiを、2つの部分データai及びbiに秘匿分割して、複数(本例では4つだが、多数とすることが可能)のクラウドから任意に選択した2つのクラウドにアップロードし、統計処理を行うための処理手順の一例を示している。
 図17は、各データ入力デバイス15の内部で行われる準備段階の手順を示す。各データ入力デバイスは、2つの部分データのアップロード先のクラウドを決定するために、UUIDを利用して、2つのキー(k1及びk2)を生成する[1]。そして、それぞれのキー(k1及びk2)に対して、時刻(time)と、シーケンス番号n(1及び2)とを足し、それぞれの合計値のハッシュ値(h1及びh2)を算出する。
 ここで、各クラウドには、0000~ffffまでの値が割り振られており、リング(環)が形成されている。例えば、クラウドが4つの場合、クラウドAには0000~3fffまでの範囲の値群を、クラウドBには4000~7fffまでの範囲の値群を、クラウドCには8000~bfffまでの範囲の値群を、クラウドDにはc000~ffffまでの範囲の値群を割り当てることができる。本例では、割り当てる範囲を等分割しているが、あるクラウドに割り当てる値群の範囲を、別のクラウドに割り当てる値群の範囲よりも大きくしてもよい。そして、算出されたハッシュ値(h1及びh2)が、割り当てられた値群の中に含まれるクラウドを、それぞれ対応する部分データ(ai及びbi)のアップロード先として決定する[2]。
 図18は、各データ入力デバイス15が、秘匿分割[3]により得られた各部分データ(ai及びbi)を、各クラウドサービス設備35へアップロードする[4][5]手順を示す。各データ入力デバイス15は、部分データのみをアップロードするのでもよいし、部分データに加えてマネージャのアドレス等(統計処理の識別情報となるもの)をアップロードしてもよい。
 また、[4]と[5]は、同時に行っても、時間差を設けて行ってもよいところ、一つのデータから秘匿分割で得られた全ての部分データが各クラウドに保存されるまでのタイムラグの間に、当該データを対象とする統計処理が行われてしまうと、結果に誤りが生じる。これを防ぐために、所定時間以上前の時刻が付されたデータに計算対象を限定する機能を、各クラウドが有している場合等には、部分データに加えて、時刻をアップロードしてもよい。但し、図16の構成例では、データのIDは、アップロードされない。
 [4]と[5]の具体的な処理は、次のようになる。各データ入力デバイスXiは、それぞれのタイミングで、[2]のn=1で生成したハッシュ値h1に相当するクラウドに対して、[3]の部分データai(及び必要に応じて時刻)を送信する。図18の例では、データ入力デバイスX1はクラウドBに対して、データ入力デバイスX2はクラウドAに対して、データ入力デバイスX3はクラウドAに対して、部分データaiを送信している。
 上述した部分データaiのアップロード先での保存が、キーバリューストアによって行われる場合、部分データaiは、対応するハッシュ値h1と共に送信される。そうすると、各クラウドは、ハッシュ値h1をキーとし、部分データai(及び必要に応じて時刻)をバリューとして、データ保存部310への保存を行い、データ入力デバイスXiへ受領確認通知を行う[4]。
 同様に、各データ入力デバイスXiは、それぞれのタイミングで、[2]のn=2で生成したハッシュ値h2に相当するクラウドに対して、[3]の部分データbi(及び必要に応じて時刻)を送信する。図18の例では、データ入力デバイスX1はクラウドCに対して、データ入力デバイスX2はクラウドCに対して、データ入力デバイスX3はクラウドDに対して、部分データbiを送信している。
 部分データbiは、対応するハッシュ値h2と共に送信され、各クラウドにおいて、ハッシュ値h2をキーとし、部分データbi(及び必要に応じて時刻)をバリューとして、データ保存部310への保存が行われる。そして、データ入力デバイスXiへ受領確認通知が返される[5]。
 図19は、統計処理結果提供サーバ(マネージャ)55が、複数のクラウドを利用して、統計処理の結果を求める段階の手順を示す。マネージャは、本統計処理のために利用する全てのクラウドに対して、各クラウドに対象となるデータが実際にアップロードされているか否かに関わらず(各データ入力デバイスが任意にアップロード先を選択するため、一部のクラウドがどのデータ入力デバイスからも選択されていないという状態も生じ得るが、マネージャではその状態を把握せずに)、計算処理(例えば、総和及び2乗和の計算)をするよう依頼する[6]。
 依頼を受けた各クラウドサービス設備35では、データ保存部310に保存されている部分データを対象として計算処理を行い、その結果の値をマネージャへ返送する[7]。このとき、上述したタイムラグを考慮して、データ保存部310に保存されているデータのうち、現在時刻から所定時間以上前となる時刻が付されたものだけを、計算処理の対象とするようにしてもよい。また、一度統計処理の対象となった部分データを再び対象としないよう、計算処理をした部分データをデータ保存部310から削除するか、計算処理の対象を未処理の部分データに限定するようにしてもよい。
 マネージャは、依頼した全てのクラウドから結果が返送される(対象となるデータが実際にアップロードされていないクラウドからは、ゼロという値が返送される)と、それらの値を合計等して、求める統計値を算出する[8]。
 以上の構成により、少なくとも図1及び図2の例の総和を求めることが可能である。図3及び図4の例の2乗和を求めるためには、図17に例示したクラウドのリングを少なくとも2つ設けておき、m個の部分データxjiについては、第1のリングに属する複数のクラウドの中から各部分データに対して決定されたクラウドへアップロードし、m個の部分データx’jiについては、第2のリングに属する複数のクラウドの中から各部分データに対して決定されたクラウドへアップロードする。
 そして、マネージャ55は、各クラウドが第1のリングと第2のリングのいずれに属しているのかは把握しており、第1のリングに属するクラウドからの結果についてはfs(Xi)即ち総和を選択し、第2のリングに属するクラウドからの結果についてはfΣ(X’i)即ち2乗和を選択して、これらを合計する処理を行う。これにより、オリジナルデータxiの2乗和を求めることができる。また、第1のリングに属するクラウドからの結果のうちのfs(Xi)を選択して、これらを合計する処理を行えば、オリジナルデータxiの総和が求められる。
 図16~19で説明した構成例において、一つのデータを秘匿分割して得られた複数の部分データのうち、一部はクラウドに保存されているが、残りが保存されていない状態である場合に、そのような状態のデータを確実に除いて、統計処理の結果を求めることができるように、マーカーという仕組みを導入してもよい。
 具体的には、各データ入力デバイスが、秘匿分割により得られた各部分データ用のハッシュ値に加えて、マーカー用のハッシュ値を算出し、一つのデータを構成する全ての部分データがクラウド上に保存されたことを確認した後で、クラウド上にマーカーを設定する。このマーカーを指し示す情報を、各データ入力デバイスが各部分データをクラウドに保存する際に、部分データと一緒に保存しておく。
 これにより、統計処理結果提供サーバが計算処理をクラウドに依頼した際に、クラウドは、保存された部分データに紐づくマーカーが、設定されている場合、すなわち、そのデータを構成する全ての部分データが、それぞれいずれかのクラウドに保存済みである場合にのみ、データを計算の対象に含めることができ、データ入力デバイスからクラウドへのアップロードが途中であるデータが計算されるのを、確実に防ぐことができる。
 上記の仕組みは、3相コミットメント(例えば、Dale Skeen, "A Formal Model of Crash Recovery in a Distributed System," IEEE Transactions on Software Engineering 9(3), pp.219-228 (May 1983)等を参照)の技術を応用して実現することも可能である。上記のマーカーが、3相コミットメントの調整者に対応し、各データ入力デバイスが、3相コミットメントの参加者に対応するが、その際、各データ入力デバイスは、一意なキーにUUID等を利用するため、毎回アドレスが変わることで自らを隠蔽することになる。
 図20は、そのように構成した本システムの例であり、図16の例と同一の符号を付したブロックは、図16に関して説明したのと同一の機能を有する。
 図20では、データ入力デバイス17-1~17-Nと、クラウドサービス設備37-1~37-Mと、統計処理結果提供サーバ55が、ネットワーク40を介して接続されているが、各データ入力デバイス17と統計処理結果提供サーバ55との間では、通信が行われない。
 各データ入力デバイス17は、データ取得部110と、秘匿分割部120と、キー生成部160及びハッシュ計算部170と、アップロード部190とを備え、アップロード部190は、秘匿分割により得られた部分データを各クラウドサービス設備37へアップロードする機能に加えて、マーカーを設定する情報(以下、「マーカー情報」という)をいずれかのクラウドサービス設備37へアップロードする機能を有する。
 各データ入力デバイス17の備える制御部180は、図16の制御部150が有する機能に加えて、マーカー用に、キー生成部160における一意なキー(UUID等)の生成と、ハッシュ計算部170における生成されたキーと、時刻と、シーケンス番号との合計値からのハッシュ値の算出とを、行わせる機能を有する。また、制御部180は、アップロード部190と連携して、秘匿分割により得られた全ての部分データがクラウド上に保存されたことを確認した後に、マーカー情報をアップロードする。
 各クラウドサービス設備37の備えるデータ保存部317は、アップロードされた各部分データと共に、マーカー情報の保存先を指し示す情報を保存する機能を有し、各クラウドサービス設備37は、データ保存部317に加えて、アップロードされたマーカー情報を保存するためのマーカー保存部350と、自身のもしくは他のクラウドサービス設備37のマーカー保存部350におけるマーカー情報の保存状況を問い合わせるためのマーカー問い合わせ部340とを備える。
 各クラウドサービス設備37の備える制御部337は、統計処理結果提供サーバ55中の管理部(管理サーバ)505からの指示に従って、計算部320が所定の演算処理を行うタイミングを特定する。制御部337は、その演算処理をデータ保存部317に保存された部分データのうちのどれを対象として行うべきかを、マーカー問い合わせ部340と連携して、特定する。
 図21~23は、図20の構成例において、各データ入力デバイスXiが、取得したデータAiを、2つの部分データai及びbiに秘匿分割して、複数(本例では4つだが、多数とすることが可能)のクラウドから任意に選択した2つのクラウドにアップロードし、マーカーmiを用いて整合性を担保しながら、統計処理を行うための処理手順の一例を示している。
 図21は、各データ入力デバイス17の内部で行われる準備段階の手順を示す。各データ入力デバイスは、2つの部分データ及びマーカー情報のアップロード先のクラウドを決定するために、UUIDを利用して、3つのキー(k0、k1、k2)を生成する[1]。
 そして、それぞれのキー(k0、k1、k2)に対して、時刻(time)と、シーケンス番号n(0、1、2)とを足し、それぞれの合計値のハッシュ値(h0、h1、h2)を算出する。そして、算出されたハッシュ値(h0、h1、h2)が、割り当てられた値群の中に含まれるクラウドを、それぞれ対応するマーカー及び部分データ(mi、ai、bi)のアップロード先として決定する[2]。
 図22は、各データ入力デバイス17が、秘匿分割[3]により得られた各部分データ(ai及びbi)を、各クラウドサービス設備37へアップロードし[4][5]、その受領確認が得られた後に、それら部分データに対応するマーカー(mi)を、クラウドサービス設備37へアップロードする[6]手順を示す。
 各データ入力デバイス17は、それぞれの部分データと一緒に、マーカー情報の保存先を指し示す情報(miに対応するハッシュ値h0)をアップロードする。これらに加えて、図16の構成例と同様に、マネージャのアドレス等(統計処理の識別情報となるもの)をアップロードしてもよい。なお、図20の構成例でも、データのIDは、アップロードされない。
 また、一つのデータから秘匿分割で得られた複数の部分データのうちの一部についてのアップロードのトランザクションがエラーとなった場合に、残りの部分データについてのトランザクションを解除する(保存されたデータを削除する等)ために、トランザクションにかかる時間の上限を超えたこと(タイムアウト)を検出する機能を、各クラウドが有している場合等には、部分データに加えて、時刻をアップロードしてもよい。
 [4]~[6]の具体的な処理は、次のようになる。各データ入力デバイスXiは、それぞれのタイミングで、[2]のn=1で生成したハッシュ値h1に相当するクラウドに対して、[3]の部分データai及びハッシュ値h0(及び必要に応じて時刻)を送信する。図22の例では、データ入力デバイスX1はクラウドBに対して、データ入力デバイスX2はクラウドAに対して、データ入力デバイスX3はクラウドAに対して、部分データai及びハッシュ値h0を送信している。
 上述した部分データai及びハッシュ値h0のアップロード先での保存が、キーバリューストアによって行われる場合、部分データai及びハッシュ値h0は、対応するハッシュ値h1と共に送信される。そうすると、各クラウドは、ハッシュ値h1をキーとし、部分データai及びハッシュ値h0(及び必要に応じて時刻)をバリューとして、データ保存部317への保存を行い、データ入力デバイスXiへ受領確認通知を行う[4]。
 同様に、各データ入力デバイスXiは、それぞれのタイミングで、[2]のn=2で生成したハッシュ値h2に相当するクラウドに対して、[3]の部分データbi及びハッシュ値h0(及び必要に応じて時刻)を送信する。図22の例では、データ入力デバイスX1はクラウドCに対して、データ入力デバイスX2はクラウドCに対して、データ入力デバイスX3はクラウドDに対して、部分データbi及びハッシュ値h0を送信している。
 部分データbi及びハッシュ値h0は、対応するハッシュ値h2と共に送信され、各クラウドにおいて、ハッシュ値h2をキーとし、部分データbi及びハッシュ値h0(及び必要に応じて時刻)をバリューとして、データ保存部317への保存が行われる。そして、データ入力デバイスXiへ受領確認通知が返される[5]。
 各データ入力デバイスXiは、[4]及び[5]の受領確認通知を受信する(データのクラウド上での保存に成功する)と、[2]のn=0で生成したハッシュ値h0に相当するクラウドに対して、マーカー(mi)を設定する値(例えば、1)を送信する。図22の例では、データ入力デバイスX1はクラウドAに対して、データ入力デバイスX2はクラウドBに対して、データ入力デバイスX3はクラウドDに対して、マーカー(mi)を設定する値を送信している。
 上述したマーカー(mi)のクラウド上での設定が、キーバリューストアによって行われる場合、マーカーを設定する値(例えば、1)は、対応するハッシュ値h0と共に送信される。そうすると、各クラウドは、ハッシュ値h0をキーとし、値1をバリューとして、マーカー保存部350への保存を行い、データ入力デバイスXiへ受領確認通知を行う[6]。
 図23は、統計処理結果提供サーバ(マネージャ)55が、複数のクラウドを利用して、統計処理の結果を求める段階の手順を示す。マネージャは、本統計処理のために利用する全てのクラウドに対して、各クラウドに対象となるデータが実際にアップロードされているか否かに関わらず、計算処理(例えば、総和及び2乗和の計算)をするよう依頼する[7]。
 依頼を受けた各クラウドサービス設備37では、データ保存部317に部分データと一緒に保存されているハッシュ値h0(マーカー情報の保存先を指し示す情報)を読み出し、そのハッシュ値h0に相当するクラウドに対して、マーカーが設定されているか、すなわち、ハッシュ値h0をキーとしてマーカーを設定する値(1)がマーカー保存部350に保存されているかの確認を行う[8]。
 図23の例では、クラウドAは、自身が保存している部分データa2、a3についてのマーカー問い合わせ[8]を、それぞれクラウドB、Dに対して行い、クラウドBは、自身が保存している部分データa1についてのマーカー問い合わせ[8]をクラウドAに対して行い、クラウドCは、自身が保存している部分データb1、b2についてのマーカー問い合わせ[8]を、それぞれクラウドA、Bに対して行い、クラウドDは、自身が保存している部分データb3についてのマーカー問い合わせ[8]を自身の内部で行っている。
 問い合わせを受けたクラウドは、問い合わせに係るキー(ハッシュ値h0)とバリューの組を自身が保存していればそのバリュー(1)を、マーカー(mi)の値として、問い合わせ元のクラウドへ返送する。保存していなければ、エラーを示す値(1以外の値)を、マーカーの値として返送する。
 問い合わせ元のクラウドでは、[8]で返送されたマーカー(mi)の値が1であれば、そのハッシュ値h0と一緒に保存されていた部分データを対象として計算処理を行い、その結果の値をマネージャへ返送する[9]。マーカーの値が1以外である部分データは、計算対象に含めないことにより、一つのデータを構成する全ての部分データがクラウド上に揃っているデータのみに基づいて、正確な統計処理を行うことが可能である。
 また、問い合わせ元のクラウドは、問い合わせ先のクラウドから1という値が返送されなかったマーカーのハッシュ値h0と一緒に保存されていた時刻をチェックして、その時刻が現在時刻から所定時間(例えば10分)以上前であれば、トランザクションが正常に完了されなかったとみなして、一緒に保存されていた部分データを削除してもよい。所定時間以内であれば、まだトランザクションの途中である可能性があるとみなして、その部分データを計算対象には含めずに、そのまま残せばよい。
 マネージャは、依頼した全てのクラウドから結果が返送される(対象となるデータが実際にアップロードされていないクラウドからは、ゼロという値が返送される)と、それらの値を合計等して、求める統計値を算出する[10]。
 なお、図6~15で説明した例と、図16~19で説明した例と、図20~23で説明した例とは、それぞれ適宜組み合わせて実施することも可能である。
 例えば、図5の例の内積を求める構成として、1つのデータ毎に4つのクラウドを各データ入力デバイス自身が(マネージャから指示を受けることなく)特定できるようにしつつ、各データ入力デバイスから各クラウドへ、部分データと共にデータのID(i)をアップロードする(クラウドからマネージャへは報告しない)ことで、統計処理結果提供サーバ(マネージャ)が管理する情報を少なくすることが可能になる。このときに、4つのクラウドのいずれか又は他のクラウドにマーカーを登録し、各クラウドが内積を計算する対象をマーカーが登録されている部分データに限ることで、マネージャが管理を行わずに正確な統計処理結果を求めることも可能になる。
 また、例えば、図16~19について説明したのと同様に、図20~23においても、2乗和を求めるために、クラウドのリングを少なくとも2つ設けることができる。その場合に、マーカーを登録するクラウドとして、第1のリングに属するクラウドを選択しても、第2のリングに属するクラウドを選択しても、いずれのリングにも属さないクラウドを選択しても構わない。
 以上、統計処理について述べてきたが、本システムは、オリジナルデータの所有者が、統計処理のために部分データをアップロードする各クラウドを利用して、オリジナルデータを秘匿化して分散保存しておき、他者はこれにアクセスできないようにしつつ、本人は参照したいときにいつでもオリジナルデータを復元できるように構成することも可能である。
 このためには、各クラウドサービス設備30のデータ保存部310に、鍵によるアクセス権限の検証機能を追加し、例えば、データ入力デバイス10から各クラウドサービス設備30へ部分データをアップロードする際に、その鍵の情報も付加してアップロードする。そして、各クラウドサービス設備30のデータ保存部310は、部分データとともに鍵によるアクセス情報を保存しておき、部分データに対するアクセスを受けると、アクセスしてきた者が対応する鍵を所有していることが検証された場合のみ、部分データの取得を許可する。
 別の例として、各クラウドサービス設備30のデータ保存部310に、予めデータの所有者の鍵の情報を保存しておき、部分データがアップロードされた際に、その部分データに対応する鍵の情報を付加して(例えば、部分データをその鍵で暗号化して)保存するようにしてもよい。いずれの例でも、オリジナルデータの所有者は、部分データを保存する全てのクラウドにアクセスして、それぞれ鍵を用いて部分データを取得し、全ての部分データを集めることにより、オリジナルデータを復元することができる。
 図24~27は、本システムのあり得る応用例について、そのごく一部を説明するものである。図24は、教育分野への応用であり、例えば、オンライン試験や模擬試験等を対象とする統計処理に適用可能である。図25は、医療(ヘルスケア)分野への応用であり、例えば、血圧、体重、体脂肪率等を対象とする統計処理に適用可能である。図26は、流通業分野への応用であるが、それに限らず、例えば、生活実態調査等の匿名アンケート調査における統計処理にも適用可能である。図27は、テレマティクス(自動車)分野への応用であり、例えば、速度、加速度等の走行情報を対象とする統計処理に適用可能であるが、それ以外の分野におけるリスク管理への応用等も可能である。
 以上、本発明の実施形態について例示的に説明したが、本明細書における説明により本発明が限定されるものではなく、上述の実施形態を本発明の範囲内で当業者が適宜、種々に変形、応用して実施できることは勿論である。

 

Claims (33)

  1.  それぞれが秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置と、
     それぞれが複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置と、
     前記複数の演算装置のそれぞれが前記オリジナルデータの部分データを前記入力データとして演算を行った結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求める手段を備えるデータ処理装置と、
     を備えることを特徴とするデータ秘匿型統計処理システム。
  2.  前記データ入力装置は、
     全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割し、所定の個数の部分データを生成する手段と、
     前記所定の個数の部分データのそれぞれを、前記複数の演算装置のうち対応する演算装置へ、保護された通信路により送信する手段とを備えることを特徴とする請求項1に記載のデータ秘匿型統計処理システム。
  3.  前記演算装置は、
     前記複数のデータ入力装置から受信した複数の前記部分データに基づいて所定の演算を行って得た演算結果を、前記データ処理装置へ送信する手段を備え、
     前記データ処理装置は、
     前記複数の演算装置から受信した複数の前記演算結果に基づいて所定の統計処理を行う手段を備えることを特徴とする請求項2に記載のデータ秘匿型統計処理システム。
  4.  前記所定の個数の部分データは、前記オリジナルデータを分割した各々の部分の値から生成されるものを含み、
     前記演算装置が行う所定の演算は、前記複数の部分データの総和の演算を含み、
     前記データ処理装置が行う所定の統計処理は、前記所定の個数の演算結果の総和を計算する処理を含むことを特徴とする請求項3に記載のデータ秘匿型統計処理システム。
  5.  前記所定の個数の部分データは、前記オリジナルデータを分割した各々の部分の値から生成されるものと、互いに異なる2つの部分同士を乗算した値に基づいて生成されるものとを含み、
     前記演算装置が行う所定の演算は、前記複数の部分データの総和及び2乗和の少なくとも一方の演算を含み、
     前記データ処理総理が行う所定の統計処理は、前記所定の個数の演算結果のうち前記各々の部分の値に対応するものについて2乗和を計算する処理と、前記所定の個数の演算結果のうち前記部分同士を乗算した値に対応するものについて総和を計算する処理とを含むことを特徴とする請求項3又は4に記載のデータ秘匿型統計処理システム。
  6.  前記所定の個数の部分データは、前記オリジナルデータを分割した各々の部分を2乗した値から生成されるものと、互いに異なる2つの部分同士を乗算した値に基づいて生成されるものとを含み、
     前記演算装置が行う所定の演算は、前記複数の部分データの総和の演算を含み、
     前記データ処理総理が行う所定の統計処理は、前記所定の個数の演算結果の総和を計算する処理を含むことを特徴とする請求項3又は4に記載のデータ秘匿型統計処理システム。
  7.  前記データ処理装置により求められる統計処理の結果は、標本平均の算出、標本分散の算出、標本偏差の算出、最尤推定、T分布を用いた区間推定、母比率の信頼区間の推定、母分散の推定、母平均の検定、母集団A及びBに関する母平均の差の検定、母比率の検定、母集団A及びBの母分散の比較検定、分散分析のうちの少なくとも1つの結果であることを特徴とする請求項1~6のいずれか1項に記載のデータ秘匿型統計処理システム。
  8.  前記複数のデータ入力装置は、同数ずつの互いに対応する第1のデータ入力装置と第2のデータ入力装置とを含み、
     前記第1のデータ入力装置及び前記第2のデータ入力装置が行う送信は、前記所定の個数の部分データのそれぞれを、所定の個数の2乗個の前記演算装置のうち対応する所定の個数の演算装置へ送信するものであり、
     前記演算装置が行う所定の演算は、前記第1のデータ入力装置からの部分データ列と前記第2のデータ入力装置からの部分データ列との内積を求める演算を含み、
     前記データ処理装置が行う統計処理は、前記所定の個数の2乗個の演算装置から受信した所定の個数の2乗個の前記演算結果の総和を計算する処理を含むことを特徴とする請求項3~6のいずれか1項に記載のデータ秘匿型統計処理システム。
  9.  前記データ処理装置により求められる統計処理の結果は、共分散の算出、相関係数の算出、回帰分析のうちの少なくとも1つの結果であることを特徴とする請求項1~8のいずれか1項に記載のデータ秘匿型統計処理システム。
  10.  前記データ入力装置が、
     前記オリジナルデータを分割する際に発生させた乱数を用いて前記秘密の比率を定め、分割した後に前記秘密の比率の記憶を消去する手段をさらに備えることを特徴とする請求項2~9のいずれか1項に記載のデータ秘匿型統計処理システム。
  11.  前記演算装置が、
     前記複数のデータ入力装置から受信した複数の前記部分データのそれぞれを、該部分データを送信したデータ入力装置と関連付けて保存する手段と、
     前記データ入力装置との関連付けを示す要求に応じて、前記複数の部分データのうち、該データ入力装置と関連付けて保存されている部分データを返送する手段とをさらに備えることを特徴とする請求項1~10のいずれか1項に記載のデータ秘匿型統計処理システム。
  12.  前記データ入力装置との関連付けを有する装置が、
     前記オリジナルデータを分割して生成した部分データの全てを、前記複数の演算装置のうち対応する演算装置から取得して、前記オリジナルデータを復元する手段を備えることを特徴とする請求項11に記載のデータ秘匿型統計処理システム。
  13.  前記データ入力装置との関連付けを有する装置が、
     前記オリジナルデータを分割した各々の部分のうち一つについての前記比率を記憶する手段と、
     前記オリジナルデータを分割して生成した部分データのうち、記憶されている前記一つの比率に該当する部分データを、前記複数の演算装置のうち対応する演算装置から取得して、前記オリジナルデータを復元する手段とを備えることを特徴とする請求項11に記載のデータ秘匿型統計処理システム。
  14.  前記データ処理装置は、
     前記複数のデータ入力装置のそれぞれへ、前記部分データを前記複数の演算装置のうちいずれへ送信すべきかを指示する手段と、
     前記複数の演算装置のそれぞれへ、前記複数のデータ入力装置から受信した複数の前記部分データのうちいずれを対象として所定の演算を行うべきかを指示する手段とを備えることを特徴とする請求項1~13のいずれか1項に記載のデータ秘匿型統計処理システム。
  15.  前記複数のデータ入力装置のそれぞれは、
     前記部分データを前記複数の演算装置のうちいずれへ送信すべきかを決定する手段を備え、
     前記複数の演算装置のそれぞれは、
     前記複数のデータ入力装置から受信した複数の前記部分データのうちいずれを対象として所定の演算を行うべきかを決定する手段を備えることを特徴とする請求項1~13のいずれか1項に記載のデータ秘匿型統計処理システム。
  16.  前記複数の演算装置の数は、一つのオリジナルデータから得られる部分データの個数である所定の数と同じかそれよりも大きく、
     前記所定の個数の部分データが、それぞれ異なる演算装置に送信されることを特徴とする請求項14又は15に記載のデータ秘匿型統計処理システム。
  17.  前記複数の演算装置は、それぞれ異なる事業者により提供されるサービスに属するものであり、
     前記データ処理装置は、前記複数の演算装置とは異なる事業者により運営されるものであることを特徴とする請求項1~16のいずれか1項に記載のデータ秘匿型統計処理システム。
  18.  秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置であって、
     それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置と通信する手段と、
     前記複数の演算装置のそれぞれに、前記オリジナルデータの部分データを前記入力データとして演算を行わせ、該演算の結果を取得する手段と、
     前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行う手段とを備え、
     複数の前記部分データは、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割することにより、生成されたものであることを特徴とする統計処理結果提供サーバ装置。
  19.  前記複数の演算装置に前記オリジナルデータに属する全ての部分データが揃ったことを確認する手段と、
     前記確認のされた部分データのそれぞれを対象として対応する演算装置における前記所定の演算が行われるように、前記複数の演算装置のそれぞれへ指示を行う手段をさらに備えることを特徴とする請求項18に記載の統計処理結果提供サーバ装置。
  20.  前記確認のために、前記複数の演算装置のそれぞれから、該演算装置に保存された部分データが属するオリジナルデータの識別番号を受信する手段をさらに備えることを特徴とする請求項19に記載の統計処理結果提供サーバ装置。
  21.  前記確認がされたオリジナルデータの識別番号の集合をシーケンス番号と対応付けて前記複数の演算装置へ通知する手段と、
     前回の通知の後に前記確認がされたオリジナルデータの識別番号の集合を次のシーケンス番号と対応付けて前記複数の演算装置へ通知する手段とをさらに備え、
     前記複数の演算装置のそれぞれに、1つのシーケンス番号の指定と共に前記所定の演算の指示を送信することにより、指定されたシーケンス番号以前の複数のシーケンス番号に対応する識別番号の集合を併せて前記所定の演算の対象とする部分データが特定されることを特徴とする請求項19又は20に記載の統計処理結果提供サーバ装置。
  22.  あるオリジナルデータの集合を対象として、前記複数の演算装置に前記所定の演算を行わせた結果を取得した後に、該あるオリジナルデータの集合に限定された数のオリジナルデータを加えた集合を対象として、前記複数の演算装置に前記所定の演算を行わせた結果を取得することを禁止する手段をさらに備えることを特徴とする請求項18~21のいずれか1項に記載の統計処理結果提供サーバ装置。
  23.  それぞれが前記オリジナルデータを取得して前記部分データを生成する手段を有する複数のデータ入力装置と通信する手段と、
     利用可能な演算装置の中から、前記所定の統計処理を行うための前記複数の演算装置を選択する手段と、
     前記複数のデータ入力装置のそれぞれへ、選択された前記複数の演算装置に対して複数の前記部分データを送信できるように、前記複数の演算装置の情報を通知する手段とをさらに備えることを特徴とする請求項18~22のいずれか1項に記載の統計処理結果提供サーバ装置。
  24.  秘匿すべきオリジナルデータを取得する手段と、
     全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割し、所定の個数の部分データを生成する手段と、
     それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置のうちの対応する演算装置への前記複数の入力データの1つとして、前記所定の個数の部分データのそれぞれを、保護された通信路により送信する手段とを備えるデータ入力装置であって、
     前記複数の演算装置のそれぞれが、複数の前記データ入力装置からの部分データに基づいて前記所定の演算を行った結果を、前記複数の演算装置とは異なるサーバ装置が利用することにより、複数の前記データ入力装置により取得された複数の前記オリジナルデータに基づく統計処理の結果が、該オリジナルデータが秘匿されたまま求められることを特徴とするデータ入力装置。
  25.  送信した前記所定の個数の部分データを、それぞれ対応する前記演算装置に、許可された者からのみアクセスできるように保存させる手段と、
     取得した前記オリジナルデータの記憶を消去する手段とをさらに備え、
     前記オリジナルデータは、前記許可された者によりそれぞれ対応する前記演算装置から取得された前記所定の個数の部分データに基づいて復元されるものとすることを特徴とする請求項24に記載のデータ入力装置。
  26.  前記サーバ装置にアクセスするための情報を記憶する手段と、
     前記対応する演算装置を特定するための情報を前記サーバ装置から受信する手段とをさらに備えることを特徴とする請求項24又は25に記載のデータ入力装置。
  27.  前記部分データに、システムにおいて一意となる識別情報を付与する手段と、
     前記識別情報に基づいて求められる値が、前記複数の演算装置のそれぞれが担当する範囲のうちのいずれの範囲に属するかに従って、前記対応する演算装置を特定する手段とをさらに備えることを特徴とする請求項24又は25に記載のデータ入力装置。
  28.  一つのオリジナルデータから得られる部分データの全てがいずれかの演算装置に受信されたことを確認した後に、確認済みであることを示す情報をいずれかの演算装置へ送信して登録する手段をさらに備えることを特徴とする請求項24~27のいずれか1項に記載のデータ入力装置。
  29.  秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置と通信する手段と、
     それぞれが前記オリジナルデータを自装置の内部に秘匿する手段を有する複数のデータ入力装置から、複数の前記オリジナルデータのそれぞれに属する部分データを受信する手段と、
     複数の入力データに基づいて所定の演算を行う手段とを備える演算装置であって、
     前記サーバ装置は、複数の前記演算装置からの演算結果に基づいて、所定の統計処理を行うものであり、
     前記演算装置は、
     前記複数のデータ入力装置から受信した複数の前記部分データのうち、該部分データに対応して、一つのオリジナルデータから得られる部分データの全てがいずれかの演算装置に受信されたことが確認済みであることを示す情報が登録されているものを、前記入力データとして選択する手段と、
     選択された前記入力データについての前記所定の演算の結果を、前記サーバ装置へ送信する手段とをさらに備えるものであることを特徴とする演算装置。
  30.  他のコンピュータと通信する機能を有するコンピュータを、データ秘匿型統計処理システムにおけるデータ処理装置として動作させるためのプログラムであって、
     前記他のコンピュータとして、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置があり、
     前記データ処理装置は、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するものであって、
     前記プログラムは、前記コンピュータに、
     前記複数の演算装置のそれぞれに、前記オリジナルデータの部分データを前記入力データとして演算を行わせ、該演算の結果を取得する手段と、
     前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行う手段とを備えさせるものであり、
     複数の前記部分データは、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割することにより、生成されたものであることを特徴とするプログラム。
  31.  秘匿すべきオリジナルデータを取得する機能と他のコンピュータと通信する機能とを有するコンピュータを、データ秘匿型統計処理システムにおけるデータ入力装置として動作させるためのプログラムであって、
     前記他のコンピュータとして、それぞれが複数の入力データに基づいて所定の演算を行う手段を有する複数の演算装置があり、
     前記プログラムは、前記コンピュータに、
     全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割し、所定の個数の部分データを生成する手段と、
     前記所定の個数の部分データのそれぞれを、前記複数の演算装置のうちの対応する演算装置への前記複数の入力データの1つとして、保護された通信路により送信する手段とを備えさせるものであり、
     前記複数の演算装置のそれぞれが、複数の前記データ入力装置からの部分データに基づいて前記所定の演算を行った結果を、前記複数の演算装置とは異なるサーバ装置が利用することにより、複数の前記データ入力装置により取得された複数の前記オリジナルデータに基づく統計処理の結果が、該オリジナルデータが秘匿されたまま求められることを特徴とするプログラム。
  32.  他のコンピュータと通信する機能を有するコンピュータを、データ秘匿型統計処理システムにおける複数の演算装置のうちの一つとして動作させるためのプログラムであって、
     前記他のコンピュータとして、秘匿されるべきオリジナルデータを取得することなく、複数の前記オリジナルデータに基づく統計処理の結果を提供するサービスのためのサーバ装置と、それぞれが前記オリジナルデータを自装置の内部に秘匿する手段を有する複数のデータ入力装置とがあり、
     前記プログラムは、前記コンピュータに、
     前記複数のデータ入力装置から、複数の前記オリジナルデータのそれぞれに属する部分データを受信する手段と、
     複数の入力データに基づいて所定の演算を行う手段と、
     前記複数のデータ入力装置から受信した複数の前記部分データのうち、該部分データに対応して、一つのオリジナルデータから得られる部分データの全てがいずれかの演算装置に受信されたことが確認済みであることを示す情報が登録されているものを、前記入力データとして選択する手段と、
     選択された前記入力データについての前記所定の演算の結果を、前記サーバ装置へ送信する手段とを備えさせるものであり、
     前記サーバ装置は、前記複数の演算装置からの演算結果に基づいて、所定の統計処理を行うものであることを特徴とするプログラム。
  33.  秘匿すべきオリジナルデータを取得する手段を備える複数のデータ入力装置のそれぞれが、全ての部分を合わせると前記オリジナルデータが復元されるように前記オリジナルデータを秘密の比率に従って分割して得られた所定の個数の部分データを出力し、
     複数の入力データに基づいて所定の演算を行う手段を備える複数の演算装置のそれぞれが、複数の前記データ入力装置のそれぞれから出力された前記部分データを前記入力データとして前記演算を行った結果を出力し、
     データ処理装置が、前記複数の演算装置のそれぞれから出力された前記演算の結果を利用することにより、前記複数のデータ入力装置により取得された複数のオリジナルデータに基づく統計処理の結果を、該オリジナルデータを取得することなく求めることを特徴とする統計処理結果提供サービス方法。

     
PCT/JP2014/005321 2013-10-23 2014-10-21 データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法 WO2015059918A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/030,106 US20160246981A1 (en) 2013-10-23 2014-10-21 Data secrecy statistical processing system, server device for presenting statistical processing result, data input device, and program and method therefor

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2013220673 2013-10-23
JP2013-220673 2013-10-23
JP2014-176590 2014-08-29
JP2014176590A JP2015108807A (ja) 2013-10-23 2014-08-29 データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法

Publications (1)

Publication Number Publication Date
WO2015059918A1 true WO2015059918A1 (ja) 2015-04-30

Family

ID=52992537

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/005321 WO2015059918A1 (ja) 2013-10-23 2014-10-21 データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法

Country Status (3)

Country Link
US (1) US20160246981A1 (ja)
JP (1) JP2015108807A (ja)
WO (1) WO2015059918A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10812341B1 (en) 2015-04-06 2020-10-20 EMC IP Holding Company LLC Scalable recursive computation across distributed data processing nodes
US10528875B1 (en) 2015-04-06 2020-01-07 EMC IP Holding Company LLC Methods and apparatus implementing data model for disease monitoring, characterization and investigation
US10541936B1 (en) 2015-04-06 2020-01-21 EMC IP Holding Company LLC Method and system for distributed analysis
US10511659B1 (en) * 2015-04-06 2019-12-17 EMC IP Holding Company LLC Global benchmarking and statistical analysis at scale
US10505863B1 (en) * 2015-04-06 2019-12-10 EMC IP Holding Company LLC Multi-framework distributed computation
US10791063B1 (en) 2015-04-06 2020-09-29 EMC IP Holding Company LLC Scalable edge computing using devices with limited resources
US10706970B1 (en) 2015-04-06 2020-07-07 EMC IP Holding Company LLC Distributed data analytics
US10425350B1 (en) 2015-04-06 2019-09-24 EMC IP Holding Company LLC Distributed catalog service for data processing platform
US10515097B2 (en) 2015-04-06 2019-12-24 EMC IP Holding Company LLC Analytics platform for scalable distributed computations
US10776404B2 (en) 2015-04-06 2020-09-15 EMC IP Holding Company LLC Scalable distributed computations utilizing multiple distinct computational frameworks
US10860622B1 (en) 2015-04-06 2020-12-08 EMC IP Holding Company LLC Scalable recursive computation for pattern identification across distributed data processing nodes
US10270707B1 (en) 2015-04-06 2019-04-23 EMC IP Holding Company LLC Distributed catalog service for multi-cluster data processing platform
US10496926B2 (en) 2015-04-06 2019-12-03 EMC IP Holding Company LLC Analytics platform for scalable distributed computations
US10509684B2 (en) 2015-04-06 2019-12-17 EMC IP Holding Company LLC Blockchain integration for scalable distributed computations
US10541938B1 (en) 2015-04-06 2020-01-21 EMC IP Holding Company LLC Integration of distributed data processing platform with one or more distinct supporting platforms
TWI554908B (zh) 2015-11-03 2016-10-21 澧達科技股份有限公司 資料加密系統
US10656861B1 (en) 2015-12-29 2020-05-19 EMC IP Holding Company LLC Scalable distributed in-memory computation
US10650083B2 (en) 2016-01-12 2020-05-12 Sony Corporation Information processing device, information processing system, and information processing method to determine correlation of data
EP3913508A1 (en) * 2016-07-06 2021-11-24 Nippon Telegraph And Telephone Corporation Fisher's exact test calculation apparatus, method, and program
CN108073821B (zh) * 2016-11-09 2021-08-06 中国移动通信有限公司研究院 数据安全处理方法及装置
US11321193B2 (en) * 2018-04-13 2022-05-03 Rubrik, Inc. Database restoration across cloud environments
KR102179029B1 (ko) * 2019-10-08 2020-11-16 한국과학기술원 백홀 사용량을 감소시키는 협력 노드들 간의 확률 콘텐트 분할 저장 장치 및 방법
JP2021089679A (ja) * 2019-12-05 2021-06-10 株式会社日立製作所 データ分析システムおよびデータ分析方法
US20210176298A1 (en) * 2019-12-09 2021-06-10 GM Global Technology Operations LLC Private cloud processing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001067137A (ja) * 1999-08-25 2001-03-16 Oki Electric Ind Co Ltd 個人認証システム
JP2004279526A (ja) * 2003-03-13 2004-10-07 Oki Electric Ind Co Ltd 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム
JP2006331072A (ja) * 2005-05-26 2006-12-07 Canon Inc サーバ装置、データ処理装置、アップロード処理情報およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL161263A0 (en) * 2004-04-02 2004-09-27 Crossix Solutions Llc A privacy preserving data-mining protocol
US8078944B2 (en) * 2007-04-19 2011-12-13 Cousins Robert E Systems, methods and computer program products including features for coding and/or recovering data
AU2008323758B2 (en) * 2007-11-08 2012-11-29 Sentient Technologies (Barbados) Limited Distributed network for performing complex algorithms
EP2242032B1 (en) * 2008-01-21 2013-10-02 Nippon Telegraph and Telephone Corporation Secure computing system, secure computing method, secure computing apparatus and program therefor
US8520855B1 (en) * 2009-03-05 2013-08-27 University Of Washington Encapsulation and decapsulation for data disintegration
US8782063B2 (en) * 2009-10-20 2014-07-15 Universal Research Solutions, Llc Generation and data management of a medical study using instruments in an integrated media and medical system
US8527766B2 (en) * 2009-12-30 2013-09-03 Microsoft Corporation Reducing leakage of information from cryptographic systems
US9576151B2 (en) * 2014-08-04 2017-02-21 International Business Machines Corporation Data privacy employing a k-anonymity model with probabalistic match self-scoring

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001067137A (ja) * 1999-08-25 2001-03-16 Oki Electric Ind Co Ltd 個人認証システム
JP2004279526A (ja) * 2003-03-13 2004-10-07 Oki Electric Ind Co Ltd 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム
JP2006331072A (ja) * 2005-05-26 2006-12-07 Canon Inc サーバ装置、データ処理装置、アップロード処理情報およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GENBU MOROHASHI ET AL.: "Statistical Analysis System for Clinical Study Using Secure Multi-party Computation", CSS2012 COMPUTER SECURITY SYMPOSIUM 2012 RONBUNSHU, vol. 2012, no. 3, 23 October 2012 (2012-10-23), pages 533 - 538 *
MASAYUKI IWASAKI: "Introduction to 'Big Data' in the enterprise", JOURNAL OF JAPAN SOCIETY FOR FUZZY THEORY AND INTELLIGENT INFORMATICS, vol. 25, no. 5, 15 October 2013 (2013-10-15), pages 153 - 157 *

Also Published As

Publication number Publication date
US20160246981A1 (en) 2016-08-25
JP2015108807A (ja) 2015-06-11

Similar Documents

Publication Publication Date Title
WO2015059918A1 (ja) データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法
Eskandarian et al. Express: Lowering the cost of metadata-hiding communication with cryptographic privacy
Beskorovajnov et al. Contra corona: Contact tracing against the coronavirus by bridging the centralized–decentralized divide for stronger privacy
Khaliq et al. A secure and privacy preserved parking recommender system using elliptic curve cryptography and local differential privacy
Cui et al. Efficient verification of edge data integrity in edge computing environment
Farina et al. Overview of the forensic investigation of cloud services
Gupta et al. A probability based model for data leakage detection using bigraph
Dattana et al. A probability based model for big data security in smart city
JP7155437B2 (ja) 暗号化されたネットワーク値の集約
US20230421353A1 (en) Generating sequences of network data while preventing acquisition or manipulation of time data
JP5895080B2 (ja) データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法
Ullah et al. Privacy-preserving targeted mobile advertising: A blockchain-based framework for mobile ads
Wang et al. Blockchain-based public auditing scheme for shared data
US11917078B2 (en) Preventing data manipulation using multiple aggregation servers
JP2014206696A (ja) データ秘匿型内積計算システム、方法、及びプログラム
JP2023524356A (ja) 分類の正確さを改善するための機械学習モデリングデータの処理
Singh et al. Security enhancement of the cloud paradigm using a novel optimized crypto mechanism
Sanatinia et al. A Privacy-preserving longevity study of Tor's hidden services
Ahmed et al. Augmenting security and accountability within the eHealth Exchange
Noman et al. Hardware-based DLAS: Achieving geo-location guarantees for cloud data using TPM and provable data possession
Nguyen et al. Long live randomization: on privacy-preserving contact tracing in pandemic
Ennahbaoui et al. Zero-knowledge authentication and intrusion detection system for grid computing security
CN116028965B (zh) 分布式lvc试训环境中数据保护方法、服务器及存储介质
YanKang et al. A Scheme of Secure Location Privacy Sharing in Mobile Crowd Sensing Application Scenario
Rahmadika et al. Practical Concerns in Enforcing Ethereum Smart Contracts as a Rewarding Platform in Decentralized Learning

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15030106

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

Country of ref document: EP

Kind code of ref document: A1