WO2017122437A1 - 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム - Google Patents

情報処理装置、情報処理システム、および情報処理方法、並びにプログラム Download PDF

Info

Publication number
WO2017122437A1
WO2017122437A1 PCT/JP2016/085116 JP2016085116W WO2017122437A1 WO 2017122437 A1 WO2017122437 A1 WO 2017122437A1 JP 2016085116 W JP2016085116 W JP 2016085116W WO 2017122437 A1 WO2017122437 A1 WO 2017122437A1
Authority
WO
WIPO (PCT)
Prior art keywords
vector
information processing
data
vectors
value
Prior art date
Application number
PCT/JP2016/085116
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 EP16885040.2A priority Critical patent/EP3404643A4/en
Priority to US16/065,959 priority patent/US10650083B2/en
Priority to JP2017561533A priority patent/JPWO2017122437A1/ja
Publication of WO2017122437A1 publication Critical patent/WO2017122437A1/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
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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
    • 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/60Digital content management, e.g. content distribution

Definitions

  • the present disclosure relates to an information processing apparatus, an information processing system, an information processing method, and a program. More specifically, an information processing apparatus, an information processing system, and the like that estimate the relevance of data, such as correlation and similarity between a plurality of secure data, without mutually disclosing a plurality of different secure data whose disclosure is restricted,
  • the present invention relates to an information processing method and a program.
  • the net seller holds data in which user ID, which is identification information of a user who has purchased a product, and identification information (product ID) of a product purchased by the user are associated with each other. Furthermore, there is a case where processing for acquiring and analyzing user profile data such as the user's sex, age, and residence is also performed.
  • user product purchase history data is personal information of each user, and it is not preferable to make it public. In other words, it is secure data that is restricted from being disclosed, and is generally data that is not allowed to be provided to others without the consent of each user.
  • the data held by each company is secure data that is restricted from being disclosed, such as the user's product purchase history information, and the secure data held by each company is mutually provided. There is a problem that it is difficult to analyze.
  • Patent Document 1 Japanese translations of PCT publication No. 2008-521005 discloses a configuration for obtaining an index of similarity between two data by secure calculation. Specifically, a configuration is disclosed in which an inner product of two data is obtained by secure calculation, and a Hamming distance between the two data is calculated as a similarity index value.
  • homomorphic encryption which is public key encryption, takes time to encrypt data
  • the problem is that when a huge amount of data is handled, the amount of calculation becomes large and the load on the computing device and the processing time increase. There is.
  • the amount of communication increases because the size of the ciphertext itself is large.
  • Patent Document 2 Japanese Patent Laid-Open No. 2014-206696 also discloses that when a plurality of organizations hold two different secure data that should be kept secret within each organization, the inner product of these two secure data is small. A configuration for calculating with a calculation amount is disclosed. The disclosed configuration of Patent Document 2 realizes data concealment processing and shortening of the inner product calculation time using the concealment data. However, this disclosed technique requires three independent computers that execute secure calculations, and there are problems in that an increase in computer resources and cost are inevitable.
  • An object is to provide a processing device, an information processing system, an information processing method, and a program.
  • an information processing apparatus an information processing system, an information processing method, and a program capable of calculating an inner product between secure data without disclosing a plurality of different secure data are provided. With the goal.
  • the first aspect of the present disclosure is: one vector X selected from k vectors; a data processing unit for determining correlation with one vector Y selected from m vectors; The data processing unit From the vector X and the vector Y, the number of sample identifiers corresponding to elements having a specific common value is calculated according to a secure calculation, and a correlation determination process between vectors according to the calculated number is executed.
  • the data processing unit For one vector X, for each of a plurality of different vectors Y selected from the m vectors, a sample identifier corresponding to an element having a specific common value is continuously calculated, and a plurality of different vectors Y It exists in the information processing apparatus which performs a correlation determination continuously.
  • the second aspect of the present disclosure is: A first information processing apparatus having k vectors whose elements are secure data; An information processing system having a second information processing apparatus having m vectors having secure data as elements,
  • the first information processing apparatus includes: Receiving from the second information processing apparatus vector information regarding the vector Y selected from the m vectors as encrypted data;
  • the data processing unit of the first information processing apparatus The number of sample identifiers corresponding to elements having a specific common value is calculated from one vector X selected from k vectors held by the first information processing apparatus and the vector Y according to secure calculation, and is calculated Perform correlation judgment processing between vectors according to the number,
  • the third aspect of the present disclosure is: An information processing method executed in an information processing apparatus,
  • the information processing apparatus includes: one vector X selected from k vectors; a data processing unit for determining correlation with one vector Y selected from m vectors; The data processing unit From the vector X and the vector Y, the number of sample identifiers corresponding to elements having a specific common value is calculated according to a secure calculation, and a correlation determination process between vectors according to the calculated number is executed.
  • the data processing unit For one vector X, for each of a plurality of different vectors Y selected from the m vectors, a sample identifier corresponding to an element having a specific common value is continuously calculated, and a plurality of different vectors Y There is an information processing method for continuously executing the correlation determination.
  • the fourth aspect of the present disclosure is: A first information processing apparatus having k vectors whose elements are secure data; An information processing method executed in an information processing system having a second information processing apparatus having m vectors having secure data as elements,
  • the first information processing apparatus includes: Receiving from the second information processing apparatus vector information regarding the vector Y selected from the m vectors as encrypted data;
  • the data processing unit of the first information processing apparatus The number of sample identifiers corresponding to elements having a specific common value is calculated from one vector X selected from k vectors held by the first information processing apparatus and the vector Y according to secure calculation, and is calculated Perform correlation judgment processing between vectors according to the number,
  • the fifth aspect of the present disclosure is: A program for executing information processing in an information processing apparatus;
  • the information processing apparatus includes: one vector X selected from k vectors; a data processing unit for determining correlation with one vector Y selected from m vectors;
  • the program is stored in the data processing unit. From the vector X and the vector Y, the number of sample identifiers corresponding to elements having a specific common value is calculated according to secure calculation, and a correlation determination process between vectors according to the calculated number is executed.
  • a sample identifier corresponding to an element having a specific common value is continuously calculated, and a plurality of different vectors Y It is in a program that continuously executes correlation determination.
  • the program of the present disclosure is a program provided by, for example, a storage medium to an information processing apparatus or a computer system that can execute various program codes. By executing such a program by the program execution unit on the information processing apparatus or the computer system, processing according to the program is realized.
  • system is a logical set configuration of a plurality of devices, and is not limited to one in which the devices of each configuration are in the same casing.
  • an information processing system having a first information processing apparatus having k vectors having secure data as elements and a second information processing apparatus having m vectors having secure data as elements.
  • the first information processing apparatus receives vector information regarding the vector Y selected from the m vectors from the second information processing apparatus as encrypted data
  • the data processing unit of the first information processing apparatus includes: A sample identifier corresponding to an element having a specific common value for each of one vector X selected from k vectors held by the first information processing apparatus and a plurality of different vectors Y selected from m vectors Are continuously calculated, and correlation determination between a plurality of different vectors is continuously executed.
  • FIG. 6 is a diagram showing a correspondence table of Jackard coefficients, which are one index value indicating the relationship between secure data held by two information processing apparatuses A and 110 and information processing apparatuses B and 120.
  • FIG. It is a figure which shows the data corresponding to n users which the information processing apparatuses A and 110 and the information processing apparatuses B and 120 hold.
  • FIG. 2 is a diagram illustrating a part of the configuration of information processing apparatuses A and 110 and information processing apparatuses B and 120 that hold secure data.
  • FIG. It is a figure which shows the flowchart explaining the sequence of the relationship calculation process between secure data. It is a figure which shows the input value and output value of each information processing apparatus A and B in the process performed according to the flow shown in FIG. It is a figure explaining the outline
  • companies such as online dealers accumulate product purchase history data indicating what users have purchased what products and store them in a storage unit as a database. Based on this accumulated data, a company can provide a recommendation mail or advertisement for a specific product to a specific user and promote the purchase of the product.
  • FIG. 1 is a diagram illustrating an example of product purchase history data corresponding to a user accumulated by a company and held in a storage unit as a database.
  • subscripts are shown after an underscore (_). For example, I_1 indicates I 1, I_K means I k.
  • a company such as an online dealer holds data in which a user ID is associated with identification information (product ID) of a product purchased by the user.
  • product ID identification information
  • FIG. 1 the data shown in FIG. 1 is an example, and user profile data such as a user's sex, age, and residence may be acquired.
  • the product purchase history data of the user as shown in FIG. 1 is personal information of each user, and it is not preferable to make it public. That is, it is secure data with limited disclosure, and data that is generally not allowed to be provided to others without the consent of each user.
  • FIG. 2 shows user-compatible product purchase history data that two different companies, for example, two different online dealers, company 1 and company 2, are individually accumulated.
  • the data shown in FIG. 2 (1) is user-compatible product purchase history data accumulated by the company 1, and each of the users 1 to n provides products 1, 1 to 1, k (item: I_ (1) provided by the company 1. , 1) to I_ (1, k)), data indicating which product has been purchased.
  • the data shown in FIG. 2 (2) is user-compatible product purchase history data accumulated by the company 2, and each of the users 1 to n provides products 2, 1 to 2, m (item: I_ (2) provided by the company 2. , 1) to I_ (2, m)), data indicating which products have been purchased.
  • the data shown in FIG. 2 is the same as in FIG. If there is a product purchase history, [1] [0] if there is no product purchase history These merchandise purchase history identification information is set.
  • x (x 2) shown in I_ (x, y) of the products 2, 1 to 2, m (item: I_ (2, 1) to I_ (2, m)) shown in FIG.
  • the company 1 shown in FIG. 2 (1) holds purchase history information of k types of products for n users, and the company 2 shown in FIG. 2 (2) purchases m types of products for n users. It shows that history information is held.
  • FIG. 2 shows user-compatible product purchase history data that two different companies, for example, two different online dealers, company 1 and company 2, are individually accumulated. By integrating and analyzing the database, it becomes possible to sell products and provide advertisements more effectively.
  • FIG. 3 shows data individually collected by a program provider 3 such as a broadcasting station and a company 4 which is a net seller.
  • the data shown in FIG. 3 (1) is user-corresponding program viewing history data accumulated by a company 3 such as a broadcasting station, and each of the users 1 to n broadcasts programs 3, 1 to 3, k (items) broadcast by the company 3. : I_ (3,1) to I_ (3, k)) is data indicating which program has been viewed.
  • the data shown in FIG. 3 (2) is user-compatible product purchase history data accumulated by the company 4, and each of the users 1 to n provides products 4, 1 to 4, m (item: I_ (4) provided by the company 4. , 1) to I_ (4, m)), data indicating which product has been purchased.
  • 3 (1) and 3 (2) show program viewing history or product purchase history information for the same number of users: 1 to n.
  • x (x 4) shown in I_ (x, y) of the products 4,1 to 4, m (item: I_ (4,1) to I_ (4, m)) shown in FIG.
  • the company 3 shown in FIG. 3A holds viewing history information of k types of programs for n users, and the company 4 shown in FIG. 3B purchases m types of products for n users. It shows that history information is held.
  • the data held by each company is secure data that is restricted from disclosure, such as user product purchase history information, and it is acceptable to provide and analyze the secure data held by each company. There is a problem that it is difficult.
  • Such analysis data is effective data for selecting users who are highly motivated to purchase a specific product.
  • Jackard coefficient As an index value applied to such an estimation process, a Jackard coefficient is known. Hereinafter, an example of calculation processing of the Jackard coefficient will be described.
  • FIG. 4 is the same data as FIG. 1, and is an example of product purchase history data corresponding to a user accumulated by a company such as a net seller based on net sales performance data.
  • the data shown in FIG. 4 is data indicating which products among the n products (users 1 to n) have been purchased from among the k products 1 to k (items: I_1 to I_k).
  • the Jackard coefficient is data that can be used when, for example, a user who has purchased a certain product determines whether or not the purchase intention for a different product is high. Further, for example, it can be used when a user who has watched a certain program determines whether or not there is a high willingness to purchase a specific product.
  • N-dimensional vectors (1, 0, 0, 1, 0,..., 1) corresponding to the number n of users representing the users who have purchased the product I_2 in the data are generated, and the similarity between these vectors.
  • the degree (correlation amount) is calculated. If the similarity (correlation amount) between these vectors is high, it can be estimated that the user who purchased the product I_1 is likely to purchase a different product I_2. On the other hand, when the similarity (correlation amount) between these vectors is low, it can be estimated that the user who purchased the product I_1 is unlikely to purchase a different product I_2.
  • n-dimensional vector corresponding to the number n of users representing users who have purchased the product I_i is referred to as a purchase vector of the product I_i.
  • the purchase vector of the product I_i can be expressed as (Formula 1) below.
  • x T — i indicates a transposed matrix of the matrix: x_i.
  • the Jackard coefficient J_ij indicating the inter-item correlation amount between the item (product) I_i and the item (product) I_j is defined as (Equation 2) below.
  • the Jackard coefficient defined by the above indicates the correlation amount and similarity between different items, and is one of the correlation amounts used in inter-item collaborative filtering.
  • Jacquard coefficient defined by (Equation 2) If the value of J_ij is large, it is determined that the inter-item correlation amount between the item (product) I_i and the item (product) I_j is large. That is, for example, it can be estimated that the user who purchased the item (product) I_i is highly likely to purchase the item (product) I_j.
  • the value of the Jackard coefficient J_ij defined in (Expression 2) is small, it is determined that the inter-item correlation amount between the item (product) I_i and the item (product) I_j is small. The That is, for example, it can be estimated that the user who purchased the item (product) I_i is not likely to purchase the item (product) I_j.
  • the Jackard coefficient represents the correlation between information related to one item (such as user-compatible product purchase information) and other item information (such as user-compatible product purchase information). Used as an index value for determination.
  • the Jackard coefficient represented by (Equation 2) is the purchase presence / absence data (x i _t) of the item (product) I_i and the purchase of the item (product) I_j, as represented by (Equation 2a).
  • the value depends on the inner product with the presence / absence data (x j — t), that is, the inner product between the purchase vectors. That is, the inner product (the inner product between the purchase vectors) of the purchase / non-purchase data (x i _t) of the item (product) I_i and the purchase / non-purchase data (x j _t) of the item (product) I_j is calculated. It can also be used as a correlation (similarity) index value between items.
  • Jackard coefficient calculation processing example is a coefficient calculation processing example in the case where two products to be calculated for correlation and information on whether or not each user has been purchased are obtained. That is, when two vectors of the purchase vector of the item (product) I_i and the purchase vector of the item (product) I_j shown in FIG. 4 are obtained, the jacquard (Jaccard) is obtained using the above (Formula 2). A coefficient can be calculated.
  • one company that has acquired the product purchase history information shown in FIG. 4 calculates the Jackard coefficient using the product purchase history information shown in FIG. Can be obtained.
  • the product purchase history information held by each company is secure data such as personal data or sensitive data that is restricted from being disclosed, and the secure data held by each company is mutually exchanged.
  • secure data such as personal data or sensitive data that is restricted from being disclosed
  • secure data held by each company is mutually exchanged.
  • it is not acceptable to provide and analyze In addition, for companies, these data are assets with economic value and they do not want to pass on to other companies.
  • the index value indicating the correlation or similarity between the secure data includes, for example, the above-described Jackard coefficient, the inner product between purchase vectors, and the like.
  • the product purchase history information held by each company is secure data such as personal data and sensitive data that are restricted from being disclosed.
  • Secure calculation is known as a process for calculating a calculation result between secure data, for example, an inner product between purchase vectors, without disclosing such publicly-restricted secure data.
  • Secure calculation refers to the operation result of secure data, for example, the addition result of secure data, the result of multiplication, etc., by using conversion data generated based on secure data without directly using secure data that is not permitted to be disclosed. This is a calculation process that makes it possible to obtain various secure data calculation results. In this way, calculation processing using secure data conversion data is called secure calculation.
  • secure data itself is not used, but secure data conversion data is used.
  • the conversion data is various types of data different from the original secure data, such as encrypted data of secure data and divided data.
  • Non-Patent Document 1 O. Goldrich, S. Micali and A. Widgerson. How to play any mental game. STOC '87, pp. 218-229, 1987.) is used. is there.
  • FIG. 5 is a diagram illustrating a processing example in which the secure data addition value is calculated by secure calculation according to the GMW method.
  • Devices A and 210 hold secure data X (for example, explanatory variable (x)).
  • the devices B and 220 hold secure data Y (for example, a result variable (y)).
  • These secure data X and Y are secure data such as personal data that is not preferably disclosed.
  • the devices A and 210 divide the secure data X into two data as follows.
  • X is set as a remainder data: mod m having a predetermined numerical value m.
  • X ((x_1) + (x_2)) mod_m
  • (x_1) is uniformly and randomly selected from 0 to (m ⁇ 1)
  • two divided data (x_1) and (x_2) are generated.
  • the data to be divided here is, for example, the sex data value (1) of a certain sample (user), which is secure data shown in FIG. 1.
  • the value (1) is ( 30) and (71), or (45) and (56) can be set in various different manners.
  • the division value can be divided into (40) and (60).
  • the age (54) can be divided into (10) and (44), and various other division processes are possible.
  • the original secure data cannot be identified from single converted data (here, one piece of divided data).
  • the divided data is not disclosed as a set.
  • only one of the divided data is disclosed, that is, provided to another device.
  • the devices B and 220 also divide the secure data Y into two data as follows.
  • Y ((y_1) + (y_2)) mod_m
  • (y_1) is uniformly and randomly selected from 0 to (m ⁇ 1)
  • the devices A and 210 and the devices B and 220 mutually provide a part of the divided data in step S20.
  • the devices A and 210 provide the divided data (x_1) to the devices B and 220.
  • the devices B and 220 provide the divided data (y_2) to the devices A and 210.
  • Each of X and Y is secure data and cannot be leaked outside.
  • the secure data X cannot be specified by acquiring only one of the data (x_1) and (x_2) that is the divided data of X.
  • the secure data Y cannot be specified even if only one of the data (y_1) and (y_2) that is the divided data of Y is acquired. Accordingly, only a part of the divided data of the secure data is data that cannot identify the secure data, and is allowed to be output to the outside.
  • the devices A and 210 output the divided data (x_1) to the calculation processing execution unit of the devices B and 220.
  • the devices B and 220 output the divided data (y_2) to the calculation processing execution unit of the devices A and 210.
  • Step S21a the calculation processing execution unit of the devices A and 210 executes the following addition processing of the divided data using the divided data. ((X_2) + (y_2)) mod m
  • the devices A and 210 output the addition result to the calculation processing execution unit of the devices B and 220.
  • step S21b the calculation processing execution unit of the devices B and 220 executes the following addition processing of the divided data using the divided data. ((X_1) + (y_1)) mod m
  • the devices B and 220 output the addition result to the calculation processing execution unit of the devices A and 210.
  • Step S22a the calculation processing execution unit of the devices A and 210 executes the following processing in step S22a. (1) The addition result of the divided data calculated in step S21a, (x_2) + (y_2), (2) The addition result of the divided data input from the devices B and 220, (x_1) + (y_1), These two addition results are further added. That is, the following calculation is executed. ((X_1) + (y_1) + (x_2) + (y_2)) mod m
  • Step S22b the calculation processing execution unit of the devices B and 220 executes the following processing in step S22b.
  • the apparatuses A and B can calculate the added value of the secure data X and Y, that is, X + Y, without outputting the respective secure data X and Y to the outside.
  • the processing shown in FIG. 5 is an example of secure data addition value calculation processing to which secure calculation according to the GMW method is applied.
  • FIG. 6 is a diagram illustrating a processing example in which a secure data multiplication value is calculated by secure calculation according to the GMW method.
  • the devices A and 210 hold secure data X.
  • the devices B and 220 hold secure data Y. These secure data X and Y are secure data that is not preferably disclosed.
  • the devices A and 210 divide the secure data X into two data.
  • X ((x_1) + (x_2)) mod m
  • the secure data X is randomly divided to generate two divided data (x_1) and (x_2).
  • the devices B and 220 also divide the secure data Y into two data.
  • Y ((y_1) + (y_2)) mod m
  • the secure data Y is randomly divided to generate two divided data (y_1) and (y_2).
  • step S30 illustrated in FIG. 6 the devices A and 210 provide the divided data (x_1) to the calculation processing execution unit of the devices B and 220.
  • the devices B and 220 provide the divided data (y_2) to the calculation processing execution unit of the devices A and 210.
  • X and Y are secure data and cannot be leaked outside.
  • the secure data X cannot be specified by acquiring only one of the data (x_1) and (x_2) that is the divided data of X.
  • the secure data Y cannot be specified even if only one of the data (y_1) and (y_2) that is the divided data of Y is acquired. Accordingly, only a part of the divided data of the secure data is data that cannot identify the secure data, and is allowed to be output to the outside.
  • the devices A and 210 output the divided data (x_1) to the calculation processing execution unit of the devices B and 220.
  • the devices B and 220 output the divided data (y_2) to the calculation processing execution unit of the devices A and 210.
  • the devices A and 210 hold (x_1) and (x_2) which are X divided data, and Y divided data (y_1) received from the devices B and 220.
  • the processing is executed according to the following procedure.
  • Step S31a The input value is x_2,
  • [1-out-of-m OT (Oblivious Transfer)] is an arithmetic protocol for executing the following processing.
  • the sender has an input value (M_0, M_1,..., M_ (m ⁇ 1)) composed of m elements.
  • the selector has an input value of ⁇ ⁇ 0, 1,..., M ⁇ 1 ⁇ .
  • the selector requests a transmitter having m elements to transmit one element, and the selector can obtain only the value of one element M_ ⁇ .
  • the other (m ⁇ 1) elements: M_i (i ⁇ ⁇ ) cannot be obtained.
  • the sender cannot know the input value ⁇ of the selector.
  • the [1-out-of-m OT] protocol is a protocol in which only one element is transmitted / received from m elements to advance arithmetic processing, and which element of m elements is transmitted / received.
  • the protocol is such that the element receiving side cannot be specified.
  • Step S32a The input value is y_2,
  • the apparatuses B and 220 hold the Y divided data (y_1) and (y_2) and the X divided data (x_1) received from the apparatuses A and 210.
  • M_0 to M_ (m ⁇ 1) are generated.
  • M_0 0 ⁇ (y_1) + r
  • M_1 1 ⁇ (y_1) + r
  • M_ (m ⁇ 1) (m ⁇ 1) ⁇ (y_1) + r
  • [1-out-of-m OT] is executed with the devices A and 210.
  • M′_0 to M ′ _ (m ⁇ 1) is generated.
  • M ′ — 0 0 ⁇ (x — 1) + r ′
  • M′_1 1 ⁇ (x_1) + r ′
  • M ′ _ (m ⁇ 1) (m ⁇ 1) ⁇ (x_1) + r ′
  • Step S33b As the output values of the devices B and 220, the following output values are calculated. ((X_1) ⁇ (y_1) ⁇ r ⁇ r ′) mod m The above value is calculated as the output value of the devices B and 220.
  • the multiplication value X ⁇ Y of the secure data X and Y can be calculated by the following calculation process using the output value calculated by the devices A and 210 in step S33a and the output value calculated by the devices B and 220 in step S33b.
  • the multiplication value X ⁇ Y of the secure data X and Y can be calculated.
  • the apparatuses A and B can calculate the multiplication value of the secure data X and Y, that is, XY, without outputting the respective secure data X and Y to the outside.
  • the process shown in FIG. 6 is an example of a secure data multiplication value calculation process to which secure calculation according to the GMW method is applied.
  • FIG. 6 is a simplified description of the secure data X and Y multiplication value calculation processing.
  • actual secure data addition processing or multiplication processing is performed, Generally, it is necessary to repeatedly execute a secure calculation, for example, by applying a calculation result obtained by one secure calculation as an input value of the next secure calculation.
  • the secure calculation processing examples shown in FIGS. 5 and 6 are examples of secure calculation, and various other different calculation processes are possible for the secure calculation mode.
  • FIG. 7 is a diagram illustrating a configuration example of one information processing system that executes the processing of the present disclosure. As shown in FIG. 7, there are two information processing apparatuses A, 110, and 120.
  • the information processing apparatuses A and 110 and the information processing apparatuses B and 120 are information processing apparatuses of two different companies, for example, two companies 1 and 2 which are online dealers.
  • the company 1 has information processing apparatuses A and 110, and stores, for example, user-compatible product purchase history data similar to that described with reference to FIGS. 1 to 4 in the storage unit of the information processing apparatuses A and 110. is doing.
  • the company 2 has the information processing apparatuses B and 120, and stores, for example, the product purchase history data corresponding to the user as described with reference to FIGS. 1 to 4 in the storage unit of the information processing apparatuses B and 120. is doing.
  • FIG. 8 shows an example of secure data that each of the two information processing apparatuses A and 110 and the information processing apparatuses B and 120 holds in the storage unit.
  • the data shown in FIG. 8 (1) is user-compatible product purchase history data collected by the company 1 and stored in the storage unit of the information processing devices A and 110 owned by the company 1. Each of the users 1 to n is This is data indicating which product has been purchased among the products 1, 1 to 1, k (item: I_ (1, 1) to I_ (1, k)) provided by the company 1.
  • the data shown in FIG. 8 (2) is user-compatible product purchase history data accumulated by the company 2 and stored in the storage unit of the information processing devices B and 120 owned by the company 2, and each of the users 1 to n is This is data indicating which of the products 2, 1 to 2, m (item: I_ (2,1) to I_ (2, m)) provided by the company 2 has been purchased.
  • the data shown in FIG. 8 is similar to that described with reference to FIG. If there is a product purchase history, [1] [0] if there is no product purchase history These merchandise purchase history identification information is set.
  • FIG. 8 shows user-related product purchase history data that two different companies, for example, company 1 and company 2 which are two different online dealers, are individually accumulated.
  • each of these data is secure data that is restricted from being disclosed. Therefore, these secure data stored in the information processing apparatuses A and 110 of each company and the information processing apparatuses B and 120 are not allowed to be transmitted and received as they are between the information processing apparatuses.
  • secure data held between the two information processing apparatuses A and 110 and the information processing apparatuses B and 120 can be transmitted without transmitting or receiving secure data between the information processing apparatuses. It is possible to more efficiently calculate the index value indicating the relevance, for example, the Jackard coefficient between the purchase vectors described above and the inner product.
  • FIG. 9 shows a correspondence table of Jackard coefficients which are one index value indicating the relationship between the secure data held by the two information processing apparatuses A and 110 and the information processing apparatuses B and 120.
  • the Jackard coefficient is a purchase vector of a product a that is an n-dimensional vector corresponding to the number of users n representing a user who has purchased a product a, and a product It is calculated as a value indicating the similarity between vectors with the purchase vector of the product b, which is an n-dimensional vector corresponding to the number n of users representing the purchase user of b.
  • the Jackard coefficient is calculated as a value indicating the similarity of purchase vectors between two different products, for example. As shown in FIG. 9, when there are k + m product types, a jacquard between different products (product i and product j) in each area of (1), (2), (3) in the matrix shown in FIG. The (Jaccard) coefficient can be calculated.
  • the area (1) is a jack card (Jaccard) between products 1, 1 to 1, k (items: I_ (1, 1) to I_ (1, k)) of the company 1 holding the information processing devices A and 110.
  • Coefficient calculation area The area (2) includes products 1, 1, 1 to 1, k (item: I_ (1, 1) to I_ (1, k)) of the company 1 holding the information processing devices A and 110, and the information processing device B. , 120, a Jackard coefficient calculation area between products 2 and 1 to 2 and m (item: I_ (2,1) to I_ (2, m)) of the company 2 that holds 120.
  • the area (3) is a jacquard (Jaccard) between products 2 and 1 to 2 and m (item: I_ (2,1) to I_ (2, m)) of the company 2 holding the information processing devices B and 120. ) Coefficient calculation area.
  • (Expression 4a) is a formula for calculating a Jackard coefficient in the region (1).
  • (Formula 4b) is a formula for calculating a Jackard coefficient in the region (2).
  • (Formula 4c) is a formula for calculating a Jackard coefficient in the region (3).
  • the Jackard coefficient J_ij indicates an inter-item correlation amount between the item (product) I_i and the item (product) I_j.
  • x_i and x_j are any of the products 1, 1 to 1, k (item: I_ (1, 1) to I_ (1, k)) provided by the company 1 holding the information processing devices A and 110, respectively.
  • This is a matrix consisting of information on whether or not n users (users 1 to n) have purchased a product (Yes: 1, No: 0).
  • This is a matrix (n-dimensional vector) expressed by (Expression 3a) described above.
  • x T _i is a transposed matrix of x_i, a previously described matrix represented by equation (3b) (n-dimensional vector).
  • the Jackard coefficient in the area (1) shown in FIG. 9 is obtained only inside the information processing apparatuses A and 110 using only data (secure data) stored in the information processing apparatuses A and 110 of the company 1. Can be calculated.
  • y_i and y_j in the expression (Jccard 4c) which is a Jackard coefficient calculation formula in the area (3) are all provided products 2, 1 to 2 of the company 2 holding the information processing devices B and 120.
  • m (item: I_ (2,1) to I_ (2, m)) information regarding whether or not n users (users 1 to n) have purchased a product (Yes: 1, No: 0)
  • the Jackard coefficient in the area (3) shown in FIG. 9 is obtained only in the information processing apparatuses B and 120 using only the data (secure data) stored in the information processing apparatuses B and 120 of the company 2. Can be calculated.
  • the equation for calculating the Jackard coefficient in the region (2) is N users (users) related to any of the products 1, 1 to 1, k (item: I_ (1, 1) to I_ (1, k)) provided by the company 1 holding the information processing devices A and 110 1 to n) product purchase presence / absence (present: 1, absent: 0) information matrix: x_i, N users (users) related to any of the products 2, 1 to 2, m (item: I_ (2, 1) to I_ (2, m)) provided by the company 2 holding the information processing devices B and 120 1 to n) includes a matrix: y_i consisting of information on presence / absence of purchase (present: 1, absent: 0).
  • the secure data stored in the storage unit of the information processing devices A and 110 is converted and provided to the information processing devices B and 120.
  • the secure data stored in the storage unit of the information processing devices B and 120 is converted. It is necessary to convert and provide it to the information processing apparatuses A and 110, and to calculate by secure calculation to which these converted data are applied. That is, for example, it is necessary to perform the secure calculation described above with reference to FIGS. As described with reference to FIGS. 5 and 6, the secure calculation has a problem that the generation of conversion data, transmission / reception, calculation using the conversion data, and the processing costs thereof increase.
  • this secure calculation is efficiently executed. That is, an index value indicating the relationship between the secure data held by the two information processing devices A and 110 and the information processing devices B and 120 without transmitting / receiving secure data between the information processing devices, for example, as described above. It is possible to more efficiently calculate the Jackard coefficient and inner product between the purchased vectors. Specific processing will be described below.
  • the jacquard coefficient represented by (Expression 4a) to (Expression 4c) is the purchase / non-purchase data (x i _t) of the item (product) I_i, as indicated by (Expression 2a) described above.
  • the information processing apparatuses A and 110 and the information processing apparatuses B and 120 are information processing apparatuses of two different companies, for example, two companies 1 and 2 which are online dealers.
  • the company 1 has information processing apparatuses A and 110, and stores, for example, user-compatible product purchase history data similar to that described with reference to FIGS. 1 to 4 in the storage unit of the information processing apparatuses A and 110. is doing.
  • the company 2 has the information processing apparatuses B and 120, and stores, for example, the product purchase history data corresponding to the user as described with reference to FIGS. 1 to 4 in the storage unit of the information processing apparatuses B and 120. is doing.
  • the data as shown in FIG. 8 is similar to that described with reference to FIG. If there is a product purchase history, [1] [0] if there is no product purchase history These merchandise purchase history identification information is set.
  • the product purchase history presence / absence data (1, 0) shown in FIG. 8 is expressed as data shown in FIG.
  • the information processing apparatuses A and 110 and the information processing apparatuses B and 120 each have commodity purchase history data corresponding to n same users.
  • the information processing apparatuses A and 110 each have n users (users 1 to n) as product purchase history information of k products 1 to k (items: I_1 to I_k).
  • the secure data is stored in the storage unit.
  • the secure data is stored in the storage unit.
  • the correlation index value is, for example, the above-described Jackard coefficient or inner product (inner product of purchase vector).
  • the product purchase history information that is secure data held by the information processing apparatuses A and 110 is referred to as data D1
  • the product purchase history information that is secure data held by the information processing apparatuses B and 120 is referred to as data D2.
  • Data D1 and data D2 are composed of the following data.
  • the correlation index value between the vector included in the data D1 and the vector included in the data D2 (Jaccard (Jaccard ) Calculate the coefficient and inner product between vector elements).
  • the data D1 includes k vectors corresponding to the number k of products provided by the company 1.
  • the data D2 includes m vectors corresponding to the number m of products provided by the company 2. For example, there is a correlation between one vector V1 in k vectors corresponding to the number of products k provided by the company 1 and one vector V2 in m vectors corresponding to the number m of products provided by the company 2. If it is determined that the price is high, it is determined that a user who has purchased a product corresponding to the vector V1 is highly likely to purchase a product corresponding to the vector V2.
  • the similarity (correlation amount) between these vectors is calculated. If the similarity (correlation amount) between these vectors is high, it can be estimated that the user who purchased the product I_1 is likely to purchase a different product J_1. On the other hand, when the similarity (correlation amount) between these vectors is low, it can be estimated that the user who purchased the product I_1 is unlikely to purchase a different product J_1.
  • IP_ij represented by the following (formula 5) as correlation index values indicating the similarity between vectors
  • Equation 5 Calculation of the inner product according to the above (Equation 5) requires calculation of secure data stored separately in two different information processing apparatuses.
  • x i _t is secure data stored in the information processing apparatuses A and 110, and is data (1 or 0) indicating whether or not the user t has purchased the product i.
  • y j — t is secure data stored in the information processing apparatuses B and 120, and is data (1 or 0) indicating whether or not the user t has purchased the product j. Since these are all secure data, transmission / reception between the information processing apparatuses A and 110 and the information processing apparatuses B and 120 is not allowed.
  • the product purchase history information: data D1, which is secure data held by the information processing devices A, 110, and the product purchase history information data: D2, which is secure data held by the information processing devices B, 120, are described above. Convert as follows.
  • Data D1 which is secure data held by the information processing apparatuses A and 110, is converted as follows.
  • v_i is the number of IDs that take 1 in x_i.
  • user IDs 1, 2,..., N are used as IDs, but other identifiable numerical combinations can also be used.
  • the product purchase history information data D2, which is secure data held by the information processing apparatuses B and 120, is converted as follows.
  • w_i is the number of IDs that take 1 in y_i.
  • the input value has one million dimensions.
  • C_i, S_j that is, the sets: C_i, S_j represented by (Expression 6) and (Expression 7)
  • the input values can be used.
  • the number of duplicate IDs is 2, and the output (inner product) is 2.
  • the output value corresponds to the number of overlapping IDs.
  • the output value is larger, and when the number of overlapping IDs is small, the output value is small. That is, as the output value is larger, the number of overlapping IDs is larger, indicating that the same number of user IDs are included in the two sets. That is, the value of the inner product is a value indicating the degree of similarity between the users who have purchased the two products, like the Jackard coefficient described above.
  • a PSI-CA (Private set interchange cardinality) protocol can be used as a protocol (calculation method) for executing this operation while maintaining the same safety as that of the secure calculation.
  • a PSI-CA protocol See, for example, the document [E. D. Cristofaro, P.A. Gasti and G.G. Tsudik, Fast and Private Computation of Cardinality of Set Interception and Union, Cryptology and Network Security, pp. 218-231, 2012]. Details of calculation processing to which the PSI-CA protocol is applied will be described later.
  • FIG. 11 is a diagram illustrating a part of the configuration of the information processing apparatuses A and 110 and the information processing apparatuses B and 120 each holding secure data such as product purchase history information.
  • the information processing apparatuses A and 110 include an input unit 111, a random number generation unit 112, a hash calculation unit 113, an arithmetic operation unit 114, an element comparison unit 115, a data transmission / reception unit 116, and an output unit 117.
  • the information processing apparatuses B and 120 include an input unit 121, a random number generation unit 122, a hash calculation unit 123, an arithmetic operation unit 124, a random replacement unit 125, a data transmission / reception unit 126, and an output unit 127.
  • the flowchart shown in FIG. 12 is a flowchart for explaining the sequence of the relationship calculation process between secure data using the apparatus shown in FIG.
  • Steps S101a and S101b The processing in step S101a and step S101b in the flow shown in FIG. 12 is processing executed in the input unit 111 of the information processing devices A and 110 and the input unit of the information processing devices B and 120 shown in FIG.
  • the input unit 111 of the information processing devices A and 110 is generated from the data stored in the storage unit of the information processing devices A and 110, for example, the user-compatible product purchase history data shown in FIG. 10A in step S101a.
  • a set C_i is input.
  • the input unit 121 of the information processing devices B and 120 is generated from the data held in the storage unit of the information processing devices B and 120, for example, the user-compatible product purchase history data shown in FIG. Set S_j to be input.
  • the input data C_i and S_j of the input units 111 and 121 are data shown in the following (formula 8a and formula 8b).
  • Step S102 The process of the next step S102 is an inner product calculation process using the PSI-CA protocol described above.
  • This inner product calculation process is performed by the random number generation unit 112, the hash calculation unit 113, the arithmetic operation unit 114, the random replacement unit 115, the data transmission / reception unit 116, and the information processing devices B and 120 of the information processing devices A and 110 shown in FIG.
  • the random number generation unit 122, the hash calculation unit 123, the arithmetic operation unit 124, the random replacement unit 125, and the data transmission / reception unit 126 are used.
  • n_ (i, j)
  • Step S103a and S103b The process in step S103 is a result output process in the output unit. It is executed in the output unit 117 of the information processing devices A and 110 and the output unit 127 of the information processing devices B and 120 shown in FIG.
  • the output unit 117 of the information processing devices A and 110 and the output unit 127 of the information processing devices B and 120 illustrated in FIG. 11 are inner products calculated in step S102, that is, inner products of sets C_i and S_j (Equation 10) ) Is output.
  • the value of the inner product shown in (Expression 10) is output to the data processing units of the information processing apparatuses A and 110 and the information processing apparatuses B and 120, for example.
  • the data processing unit of each information processing apparatus can determine the correlation of the purchase user of each product using the input inner product value. As described above, it can be determined that the larger the value of the inner product: n_ (i, j), the higher the correlation (similarity) between the purchase user of the product i and the product j. Note that the calculated inner product and the Jackard coefficient are in the relationship of (Equation 2a) and (Equation 2) described above, and the Jackard coefficient is calculated using the calculated inner product. Can do.
  • 15 and 16 are flowcharts for explaining a detailed sequence of batch calculation processing to which the PSI-CA protocol in step S102 of the flow shown in FIG. 12 is applied.
  • Step S211 The process in step S211 of the flow illustrated in FIG. 15 is a process executed in the input unit 111 of the information processing apparatuses A and 110 illustrated in FIG.
  • the input unit 111 of the information processing devices A and 110 is generated from the data held in the storage unit of the information processing devices A and 110, for example, user-compatible product purchase history data shown in FIG. Set: Enter C.
  • Step S212 The process of step S212 is a process executed by the random number generation unit 112 and the arithmetic operation unit 114 of the information processing apparatuses A and 110 illustrated in FIG.
  • the random number generator 112 generates random numbers R_C and R′_C.
  • the arithmetic operation unit 114 calculates the shared information X based on these random numbers. These calculations are executed according to the procedure shown in the following (Equation 12).
  • Step S213 The processing in step S213 is processing executed by the hash calculation unit 113 and the arithmetic operation unit 114 of the information processing apparatuses A and 110 illustrated in FIG.
  • the hash calculator 113 obtains a hash value of the input value (C_t), Further, the arithmetic operation unit 114 performs a process of raising the hash value calculated by the hash calculation unit 113 to the power of the random number R′_C. Specifically, the calculation shown in the following (Formula 13) is executed.
  • the data transmission / reception unit 116 of the information processing apparatuses A and 110 shown in FIG. 11 transmits the following data to the information processing apparatuses B and 120.
  • Shared information: X g Rc Set: ⁇ a_1, ..., a_v ⁇ ,
  • Step S221 The process of step S221 in the flow illustrated in FIG. 15 is a process executed in the input unit 121 of the information processing apparatuses B and 120 illustrated in FIG.
  • the input unit 121 of the information processing devices B and 120 is generated from the data held in the storage unit of the information processing devices B and 120, for example, the user-compatible product purchase history data shown in FIG. Set: Enter S_j.
  • Step S222 The process of step S222 in the flow illustrated in FIG. 15 is a process executed by the random replacement unit 125 and the hash calculation unit 123 of the information processing apparatuses B and 120 illustrated in FIG.
  • the random replacement unit 125 of the information processing devices B and 120 randomly replaces the input value S_j in step S221 and outputs the random replacement data to the hash calculation unit 123.
  • the hash calculator 123 calculates a hash value of the random replacement data of the input value: S_j generated by the random replacement unit 125.
  • the specific calculation is executed according to the following (Formula 15a) and (Formula 15b).
  • (Formula 15a) is a random substitution process of the input value: S_j by the random substitution unit 125.
  • (Expression 15b) is a hash value calculation process of random replacement data by the hash calculation unit 123.
  • Step S223 The process of step S223 is a process executed by the data transmission / reception unit 126, random number generation unit 122, and arithmetic operation unit 124 of the information processing apparatuses B and 120 shown in FIG.
  • the data transmitter / receiver 126 receives the following data generated in steps S212 to S213, which are processing steps in the information processing apparatus A.
  • Shared information: X g Rc Set: ⁇ a_1, ..., a_v ⁇ ,
  • Step S224 The process of step S224 is a process executed in the arithmetic operation unit 124 and the random replacement unit 125 of the information processing apparatuses B and 120 shown in FIG.
  • the arithmetic operation unit 124 receives input data from the information processing devices A and 110, ⁇ A_1, ..., a_v ⁇ The power is multiplied by the random number R′_S, and the power data is output to the random replacement unit 125.
  • the random replacement unit 125 performs a random replacement process on the input power data. Specifically, processing according to (Expression 17a) and (Expression 17b) shown below is executed.
  • Equation 17a is a power process by the random number R′_S for the input data ⁇ a_1,..., A_v ⁇ in the arithmetic operation unit 124.
  • Expression 17b is a random replacement process of power data by the random replacement unit 125.
  • Step S225 The process of step S225 is a process executed by the arithmetic operation unit 124, the hash calculation unit 123, and the data transmission / reception unit 126 of the information processing apparatuses B and 120 illustrated in FIG.
  • the arithmetic operation unit 124 further powers the hash value after random replacement of the input value generated in step S222 with a random number R′_S, Furthermore, it is an input value from the information processing devices A and 110.
  • Shared information: X g Rc
  • the X is multiplied and the multiplication value is output to the hash calculation unit 123.
  • a hash calculation unit 123 calculates a hash value for this multiplication value. Specifically, calculation according to the following (formula 18a) and (formula 18b) is executed.
  • (Equation 18b) is a hash value calculation process for the multiplication value by the hash calculation unit 123.
  • the data transmitting / receiving unit 126 of the information processing apparatuses B and 120 generates the data in step S223.
  • Shared information: Y g Rs , Further, the data generated in steps S224 and S225 is transmitted to information processing apparatuses A and 110.
  • the data transmitted from the information processing devices B and 120 to the information processing devices A and 110 are the data shown in the following (formula 19).
  • steps S212 to S213 executed by the information processing devices A and 110 and the processing of steps S222 to S225 executed by the information processing devices B and 120 are held by the information processing devices A and B.
  • This process is performed as a secure data conversion process. Specifically, it is processing for converting secure data and preventing leakage by processing such as encryption of vector constituent elements, hash calculation, and random replacement.
  • the processes in steps S241 to S215 described below are correlation determination processes between vectors that are executed using these secure data.
  • Step S214 The process of step S214 is a process executed by the data transmission / reception unit 116, the arithmetic operation unit 114, and the hash calculation unit 113 of the information processing apparatuses A and 110.
  • the arithmetic operation unit 114 of the information processing devices A and 110 multiplies the input data from the information processing devices B and 120 by a power of the reciprocal of the random number R′_c, and further multiplies Y Rc , and the calculation result is hashed. Output to the calculation unit 113.
  • the hash calculation unit 113 calculates a hash value for the input from the arithmetic operation unit 114. Specifically, calculation according to the following (formula 20a) and (formula 20b) is executed.
  • (Formula 20a) is a calculation process in the arithmetic operation unit 114
  • (Formula 20b) is a hash value calculation process by the hash calculation unit 113.
  • Step S215 The process of step S215 is a process executed by the element comparison unit 115 of the information processing apparatuses A and 110.
  • This common element number calculation process is a process according to the following (Formula 21).
  • the calculation of the number of common elements according to the above (Formula 21) is executed.
  • the number of m common elements for each of m products j (j 1 to m) provided by the company 2 for one product i provided by the company 1 having the information processing devices A and 110.
  • Data, ie n_j However, (j 1 to m)
  • the m common element number data are continuously obtained.
  • the data transmitting / receiving unit 116 of the information processing apparatuses A and 110 transmits the m common element number data: n_j to the information processing apparatuses B and 120.
  • Step S216 The process of step S216 is a process executed by the output unit 117 of the information processing apparatuses A and 110.
  • the output unit 117 of the information processing devices A and 110 outputs the m common element number data: n_j calculated in step S215 to the data processing unit of the information processing devices A and 110.
  • the number of common elements calculated according to the above (Equation 21) is equal to the inner product between the purchase vectors of (Equation 2a) described above. Further, the inner product and the Jackard coefficient have the relationship of (Expression 2a) and (Expression 2) described above, and the Jackard coefficient can be calculated using the calculated inner product. it can.
  • Step S226 is processing executed by the data transmitting / receiving unit 126 and the output unit 127 of the information processing apparatuses B and 120.
  • the data transmitting / receiving unit 126 of the information processing devices B and 120 receives the m common element number data: n_j calculated in the execution step S215 of the information processing devices A and 110 from the information processing devices A and 110, and outputs the output unit 127. To provide.
  • the output unit 127 of the information processing devices B and 120 outputs m common element number data: n_j to the data processing unit of the information processing devices B and 120.
  • the company 1 having the information processing apparatuses A and 110 provides 1 by the process according to the single process sequence according to the flowcharts described with reference to FIGS. 15 and 16.
  • m common element number data that is, n_j
  • m common element number data can be continuously acquired.
  • the processing described with reference to FIGS. 15 and 16 is summarized as follows.
  • the information processing apparatuses A and 110 have k vectors having secure data as elements.
  • the information processing apparatuses B and 120 include a second information processing apparatus having m vectors having secure data as elements.
  • the information processing apparatuses A and 110 receive the vector information related to the vector Y selected from the m vectors from the information processing apparatuses B and 120 as encrypted data.
  • the data processing unit of the information processing devices A and 110 determines a specific vector from one vector X selected from the k vectors held by the information processing devices A and 110 and the vector Y received from the information processing devices B and 120.
  • the number of sample identifiers corresponding to elements having a common value, that is, (1) is calculated according to secure calculation, and correlation determination processing between vectors according to the calculated number is executed.
  • the data processing unit of the information processing devices A and 110 performs, for one vector X, an element-corresponding sample having a specific common value for each of a plurality of different vectors Y selected from m vectors.
  • the identifier is continuously calculated, and the correlation determination between a plurality of different vectors is continuously executed.
  • FIG. 18 is a diagram illustrating a hardware configuration example of the information processing apparatus.
  • a CPU (Central Processing Unit) 401 functions as a control unit or a data processing unit that executes various processes according to a program stored in a ROM (Read Only Memory) 402 or a storage unit 408. For example, processing according to the sequence described in the above-described embodiment is executed.
  • a RAM (Random Access Memory) 403 stores programs executed by the CPU 401, data, and the like. These CPU 401, ROM 402, and RAM 403 are mutually connected by a bus 404.
  • the CPU 401 is connected to an input / output interface 405 through a bus 404.
  • the input / output interface 405 is connected to an input unit 406 including various switches, a keyboard, a mouse, a microphone, and the like, and an output unit 407 including a display and a speaker. Yes.
  • the CPU 401 executes various processes in response to a command input from the input unit 406 and outputs the processing result to the output unit 407, for example.
  • the storage unit 408 connected to the input / output interface 405 includes, for example, a hard disk and stores programs executed by the CPU 401 and various data.
  • the communication unit 409 functions as a data communication transmission / reception unit via a network such as the Internet or a local area network, and communicates with an external device.
  • the drive 410 connected to the input / output interface 405 drives a removable medium 411 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory such as a memory card, and executes data recording or reading.
  • a removable medium 411 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory such as a memory card
  • the technology disclosed in this specification can take the following configurations. (1) one vector X selected from k vectors; a data processing unit for determining correlation with one vector Y selected from m vectors; The data processing unit From the vector X and the vector Y, the number of sample identifiers corresponding to elements having a specific common value is calculated according to a secure calculation, and a correlation determination process between vectors according to the calculated number is executed. The data processing unit For one vector X, for each of a plurality of different vectors Y selected from the m vectors, a sample identifier corresponding to an element having a specific common value is continuously calculated, and a plurality of different vectors Y An information processing apparatus that continuously performs correlation determination.
  • the vector X is one vector selected from k vectors of n elements composed of binary data whose value of the element corresponding to the sample is 1 or 0.
  • the vector Y is one vector selected from m vectors of n elements consisting of binary data whose sample corresponding element value is 1 or 0,
  • the data processing unit As an inner product calculation process between the elements of the vector X and the vector Y, A sample identifier corresponding to an element having a value of 1 among the elements of the vector X, and Performing a process of extracting the number of common sample identifiers from the sample identifiers corresponding to the elements having a value of 1 among the elements of the vector Y;
  • the data processing unit For one vector X, for each of a plurality of vectors Y selected from the m vectors, a process of continuously extracting a sample identifier corresponding to a common element having a value of 1 is executed (1) The information processing apparatus described.
  • the data processing unit The information processing apparatus according to (1) or (2), wherein vector information on either the vector X or the vector Y is received as encrypted data from a different information processing apparatus and data processing is executed.
  • the data processing unit The information processing apparatus according to any one of (1) to (3), wherein calculation processing using conversion data of a sample identifier corresponding to at least one element of the vector X or the vector Y is executed as the secure calculation .
  • the data processing unit The information processing according to any one of (1) to (4), wherein calculation processing using random replacement data of a sample identifier corresponding to at least one element of the vector X or the vector Y is executed as the secure calculation apparatus.
  • the data processing unit A sample identifier corresponding to an element having a value of 1 among the elements of the vector X, and Among the elements of the vector Y, the number of common sample identifiers is calculated from the sample corresponding to the element corresponding to the value of 1, and the calculated number is an inner product value between the elements of the vector X and the vector Y.
  • the information processing apparatus according to any one of (1) to (5), wherein the larger the value is, the higher the correlation between the vector X and the vector Y is determined.
  • the data processing unit The inner product value is applied to calculate a Jackard coefficient, and the larger the value of the Jackard coefficient is, the higher the correlation between the vector X and the vector Y is determined (6).
  • the information processing apparatus described.
  • the first information processing apparatus includes: Receiving from the second information processing apparatus vector information regarding the vector Y selected from the m vectors as encrypted data; The data processing unit of the first information processing apparatus The number of sample identifiers corresponding to elements having a specific common value is calculated from one vector X selected from k vectors held by the first information processing apparatus and the vector Y according to secure calculation, and is calculated Perform correlation judgment processing between vectors according to the number, The data processing unit For one vector X, for each of a plurality of different vectors Y selected from the m vectors, a sample identifier corresponding to an element having a specific common value is continuously calculated, and a plurality of different vectors Y An information processing system that continuously performs correlation determination.
  • the vector X is one vector selected from k vectors of n elements composed of binary data whose value of the element corresponding to the sample is 1 or 0.
  • the vector Y is one vector selected from m vectors of n elements consisting of binary data whose sample corresponding element value is 1 or 0,
  • the data processing unit As an inner product calculation process between the elements of the vector X and the vector Y, A sample identifier corresponding to an element having a value of 1 among the elements of the vector X, and Performing a process of extracting the number of common sample identifiers from the sample identifiers corresponding to the elements having a value of 1 among the elements of the vector Y;
  • the data processing unit For a single vector X, for each of a plurality of vectors Y selected from the m vectors, a process of continuously extracting a sample identifier corresponding to a common element having a value of 1 is executed (8).
  • the information processing system described.
  • the data processing unit The information processing according to any one of (8) to (10), wherein calculation processing using random replacement data of a sample identifier corresponding to at least one element of the vector X or the vector Y is executed as the secure calculation system.
  • the data processing unit A sample identifier corresponding to an element having a value of 1 among the elements of the vector X, and Among the elements of the vector Y, the number of common sample identifiers is calculated from the sample corresponding to the element corresponding to the value of 1, and the calculated number is an inner product value between the elements of the vector X and the vector Y.
  • the information processing system according to any one of 8) to (11), wherein the larger the value is, the higher the correlation between the vector X and the vector Y is determined.
  • the data processing unit The inner product value is applied to calculate a Jackard coefficient, and the larger the value of the Jackard coefficient, the higher the correlation between the vector X and the vector Y is determined (12).
  • the information processing apparatus includes: one vector X selected from k vectors; a data processing unit for determining correlation with one vector Y selected from m vectors; The data processing unit From the vector X and the vector Y, the number of sample identifiers corresponding to elements having a specific common value is calculated according to a secure calculation, and a correlation determination process between vectors according to the calculated number is executed.
  • the data processing unit For one vector X, for each of a plurality of different vectors Y selected from the m vectors, a sample identifier corresponding to an element having a specific common value is continuously calculated, and a plurality of different vectors Y An information processing method for continuously executing correlation determination.
  • the first information processing apparatus includes: Receiving from the second information processing apparatus vector information regarding the vector Y selected from the m vectors as encrypted data; The data processing unit of the first information processing apparatus The number of sample identifiers corresponding to elements having a specific common value is calculated from one vector X selected from k vectors held by the first information processing apparatus and the vector Y according to secure calculation, and is calculated Perform correlation judgment processing between vectors according to the number, The data processing unit For one vector X, for each of a plurality of different vectors Y selected from the m vectors, a sample identifier corresponding to an element having a specific common value is continuously calculated, and a plurality of different vectors Y An information processing method for continuously executing correlation determination.
  • a program for executing information processing in an information processing device includes: one vector X selected from k vectors; a data processing unit for determining correlation with one vector Y selected from m vectors; The program is stored in the data processing unit. From the vector X and the vector Y, the number of sample identifiers corresponding to elements having a specific common value is calculated according to secure calculation, and a correlation determination process between vectors according to the calculated number is executed. Further, For one vector X, for each of a plurality of different vectors Y selected from the m vectors, a sample identifier corresponding to an element having a specific common value is continuously calculated, and a plurality of different vectors Y A program that continuously executes correlation determination.
  • the series of processes described in the specification can be executed by hardware, software, or a combined configuration of both.
  • the program recording the processing sequence is installed in a memory in a computer incorporated in dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It can be installed and run.
  • the program can be recorded in advance on a recording medium.
  • the program can be received via a network such as a LAN (Local Area Network) or the Internet and installed on a recording medium such as a built-in hard disk.
  • the various processes described in the specification are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary.
  • the system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.
  • an information processing system having a first information processing apparatus having k vectors having secure data as elements and a second information processing apparatus having m vectors having secure data as elements.
  • the first information processing apparatus receives vector information regarding the vector Y selected from the m vectors from the second information processing apparatus as encrypted data
  • the data processing unit of the first information processing apparatus includes: A sample identifier corresponding to an element having a specific common value for each of one vector X selected from k vectors held by the first information processing apparatus and a plurality of different vectors Y selected from m vectors Are continuously calculated, and correlation determination between a plurality of different vectors is continuously executed.

Abstract

高速かつ効率的なベクトル間の相関性判定処理を実行する。セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムであり、第1の情報処理装置は、第2の情報処理装置から、m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、第1の情報処理装置のデータ処理部は、第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する。

Description

情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
 本開示は、情報処理装置、情報処理システム、および情報処理方法、並びにプログラムに関する。さらに詳細には、公開が制限された異なる複数のセキュアデータを相互に開示することなく、複数のセキュアデータ間の相関や類似性等、データの関連性を推定する情報処理装置、情報処理システム、および情報処理方法、並びにプログラムに関する。
 近年、インターネット等のネットワークを介した商品販売が盛んに行われており、多くのユーザが、スマホやPCを利用して様々な商品を購入している。
 一方、ネット販売業者は、どのようなユーザがどのような商品を購入したかの商品購入履歴データを集積している。
 ネット販売業者は、この集積データに基づいて、特定ユーザに特定商品の推薦メールや広告を提供して、商品の購入促進を行うといった処理が可能となる。
 ネット販売業者は、例えば商品を購入したユーザの識別情報であるユーザIDと、そのユーザが購入した商品の識別情報(商品ID)を対応付けたデータを保持することになる。さらに、ユーザの性別、年齢、居住地等のユーザプロファイルデータも取得して分析する処理が行われる場合もある。
 しかし、このようなユーザの商品購入履歴データは、各ユーザの個人情報であり、公開することは好ましくない。すなわち、公開が制限されたセキュアデータであり、一般的に各ユーザの承諾なしに他者に提供することは許容されないデータである。
 しかし、多くの異なるネット販売業者は、それぞれ個別に集積した異なるセキュアデータを保持しており、これらのデータを、例えばユーザIDや商品IDを連携させて、異なる企業間で活用しようとする動きも出てきている。
 すなわち、各企業が個別に集積した顧客プロファイルや購買履歴などを統合して解析し、解析データをユーザターゲット広告等の商品販売促進に利用する動きである。
 各企業が保有する個別のデータベースを統合して解析を行うことで、より効果的な商品販売や広告提供が可能となる。
 さらに、ユーザの商品購入履歴情報のみならず、様々な広告の閲覧履歴情報、番組視聴履歴情報等も統合して、各ユーザ向けの最適な広告や情報を提供しようとする試みも行われている。
 しかし、上述したように、多くの場合、各企業が保持するデータは、ユーザの商品購入履歴情報等、公開が制限されるセキュアデータであり、各企業が保持するセキュアデータを相互に提供して解析することは許容し難いという問題がある。
 近年、この問題を解決する技術として、セキュアデータを相互に開示することなく、セキュアデータ間の相関や類似性等、データ間の関連性を解析する技術について、様々な検討がなされている。
 例えば、セキュアデータの暗号化データや、変換データ等の秘匿化データを利用して、セキュアデータ間の関連性を解析する手法である。
 なお、セキュアデータの暗号化データや、変換データ等、元データの秘匿化データを利用して行われる計算処理を、秘密計算、あるいはセキュア計算と呼ぶ。
 例えば、特許文献1(特表2008-521025号公報)は、2つのデータ間の類似性の指標を、セキュア計算によって求める構成を開示している。具体的には、2つのデータの内積をセキュア計算で求めて、2つのデータ間のハミング距離を類似性指標値として算出する構成を開示している。
 本文献では、セキュア計算による具体的な内積算出方法として、入力データに対して準同型暗号を適用して暗号化し、暗号化したデータについて準同型加算や乗算を行う方法を開示している。
 しかし、公開鍵暗号である準同型暗号は、データ暗号化に時間がかかるため、莫大な量のデータを扱う場合、計算量が大きくなり、計算装置の負荷や処理時間が増大してしまうという問題がある。また、暗号文自体のサイズも大きいため通信量も大きくなるという問題がある。
 さらに、特許文献2(特開2014-206696号公報)も、複数の組織が、各組織内で秘匿すべき異なる2つのセキュアデータを保持している場合、これら2つのセキュアデータの内積を、少ない計算量で算出する構成を開示している。
 この特許文献2の開示構成は、データ秘匿化処理や、秘匿化データを適用した内積計算の時間の短縮を実現している。
 しかし、この開示手法は、セキュア計算を実行する独立な計算機を3つ必要とする構成であり、計算機リソースの大型化や、コスト高が避けられないという問題点がある。
特表2008-521025号公報 特開2014-206696号公報
 本開示は、例えば上述の問題点に鑑みてなされたものであり、開示が許容されない複数の異なるセキュアデータを相互に開示することなく、セキュアデータ間の相関等の関係性を算出可能とした情報処理装置、情報処理システム、および情報処理方法、並びにプログラムを提供することを目的とする。
 さらに、本開示の一実施態様では、異なる複数のセキュアデータを開示することなく、セキュアデータ間の内積を算出可能とした情報処理装置、情報処理システム、および情報処理方法、並びにプログラムを提供することを目的とする。
 本開示の第1の側面は、
 k本のベクトルから選択された1つのベクトルXと、
 m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
 前記データ処理部は、
 前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
 前記データ処理部は、
 1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理装置にある。
 さらに、本開示の第2の側面は、
 セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、
 セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムであり、
 前記第1の情報処理装置は、
 前記第2の情報処理装置から、前記m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、
 前記第1の情報処理装置のデータ処理部は、
 前記第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
 前記データ処理部は、
 1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理システムにある。
 さらに、本開示の第3の側面は、
 情報処理装置において実行する情報処理方法であり、
 前記情報処理装置は、
 k本のベクトルから選択された1つのベクトルXと、
 m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
 前記データ処理部は、
 前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
 前記データ処理部は、
 1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法にある。
 さらに、本開示の第4の側面は、
 セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、
 セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
 前記第1の情報処理装置は、
 前記第2の情報処理装置から、前記m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、
 前記第1の情報処理装置のデータ処理部は、
 前記第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
 前記データ処理部は、
 1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法にある。
 さらに、本開示の第5の側面は、
 情報処理装置において情報処理を実行させるプログラムであり、
 前記情報処理装置は、
 k本のベクトルから選択された1つのベクトルXと、
 m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
 前記プログラムは、前記データ処理部に、
 前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行させ、
 さらに、
 1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行させるプログラムにある。
 なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して例えば記憶媒体によって提供されるプログラムである。このようなプログラムを情報処理装置やコンピュータ・システム上のプログラム実行部で実行することでプログラムに応じた処理が実現される。
 本開示のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
 本開示の一実施例の構成によれば、高速かつ効率的なベクトル間の相関性判定処理が実現される。
 具体的には、セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムであり、第1の情報処理装置は、第2の情報処理装置から、m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、第1の情報処理装置のデータ処理部は、第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する。
 本構成により、高速かつ効率的なベクトル間の相関性判定処理が実現される。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
企業が集積し、データベースとして記憶部に保持するユーザ対応の商品購入履歴データの例を示す図である。 企業1と、企業2がそれぞれ個別に集積したユーザ対応商品購入履歴データを示す図である。 企業3と、企業4がそれぞれ個別に集積したユーザ対応データを示す図である。 企業が集積し、データベースとして記憶部に保持するユーザ対応の商品購入履歴データの例を示す図である。 セキュア計算によるセキュアデータの加算結果算出処理例について説明する図である。 セキュア計算によるセキュアデータの乗算結果算出処理例について説明する図である。 本開示の処理を実行する1つの情報処理システム構成例を示す図である。 2つの情報処理装置A,110、情報処理装置B,120の各々が記憶部に保持するセキュアデータの一例を示す図である。 2つの情報処理装置A,110と、情報処理装置B,120の保有するセキュアデータ間の関連性を示す1つの指標値であるジャッカード(Jaccard)係数の対応表を示す図である。 情報処理装置A,110、情報処理装置B,120の保持するn人のユーザ対応のデータを示す図である。 セキュアデータを保持する情報処理装置A,110と、情報処理装置B,120の構成の一部を示す図である。 セキュアデータ間の関係性算出処理のシーケンスを説明するフローチャートを示す図である。 図12に示すフローに従って実行する処理における各情報処理装置A,Bの入力値と、出力値を示す図である。 一括型PSI-CAによるセキュアデータ間の関係性推定処理の概要について説明する図である。 セキュアデータ間の関係性算出処理のシーケンスを説明するフローチャートを示す図である。 セキュアデータ間の関係性算出処理のシーケンスを説明するフローチャートを示す図である。 図15、図16に示すフローに従って実行する処理における各情報処理装置A,Bの入力値と、出力値を示す図である。 情報処理装置のハードウェア構成例を示す図である。
 以下、図面を参照しながら本開示に係る情報処理装置、情報処理システム、および情報処理方法、並びにプログラムの詳細について説明する。説明は、以下の項目に従って行う。
 1.本開示の処理が適用可能なシステムの一構成例について
 2.ジャッカード(Jaccard)係数について
 3.セキュア計算の概要について
 4.計算量を削減したセキュア計算によるセキュアデータ間の関係性を推定する処理について
 4-a.本開示の処理を行なう前提となる設定例について
 4-b.計算の高速化を実現する処理の概要について
 4-c.計算量を削減したセキュア計算によるセキュアデータ間の関係性算出処理例について
 5.PSI-CA(Private set intersection cardinality)プロトコルを適用した一括型計算処理について
 5-1.(説明1)情報処理装置A,110の実行する処理(ステップS211~S213)
 5-2.(説明2)情報処理装置B,120の実行する処理(ステップS221~S225)
 5-3.(説明3)情報処理装置A,110の実行する処理(ステップS214~S216)
 5-4.(説明4)図16に示す情報処理装置B,120の実行する処理(ステップS226)
 6.情報処理装置のハードウェア構成例について
 7.本開示の構成のまとめ
  [1.本開示の処理が適用可能なシステムの一構成例について]
 まず、本開示の処理が適用可能なシステムの一構成例について説明する。
 前述したように、近年、インターネット等のネットワークを介した商品販売が盛んに行われており、多くのユーザが、スマホやPCを利用して様々な商品を購入している。
 一方、ネット販売業者等の企業は、どのようなユーザがどのような商品を購入したかの商品購入履歴データを集積し、データベースとして記憶部に保持している。
 企業は、この集積データに基づいて、特定ユーザに特定商品の推薦メールや広告を提供して、商品の購入促進を行うといった処理が可能となる。
 図1は、企業が集積し、データベースとして記憶部に保持するユーザ対応の商品購入履歴データの例を示す図である。
 図1に示すデータは、ユーザIDに対応する標本識別子(t)(=ユーザ1~n)各々が、k個の商品1~k(item:I_1~I_k)中の、どの商品を購入したかを示すデータである。
 なお、本明細書では、下付き文字をアンダーバー( _ )の後に示す。
 例えば、I_1はIを示し、I_kはIを意味する。
 図1に示すデータでは、
 商品購入履歴ありの場合は、[1]、
 商品購入履歴なしの場合は、[0]
 これらの商品購入履歴識別情報を設定している。
 このように、ネット販売業者等の企業は、ユーザIDと、そのユーザが購入した商品の識別情報(商品ID)を対応付けたデータを保持する。
 なお、図1に示すデータは一例であり、さらに、ユーザの性別、年齢、居住地等のユーザプロファイルデータ等の取得が行われる場合もある。
 図1に示すようなユーザの商品購入履歴データは、各ユーザの個人情報であり、公開することは好ましくない。すなわち、開示の制限されたセキュアデータであり、一般的に各ユーザの承諾なしに他者に提供することは許容されないデータである。
 しかし、多くの異なるネット販売業者は、それぞれ個別に集積した異なるセキュアデータを保持しており、これらのデータを、例えばユーザIDや商品IDを連携させて、異なる企業間で活用しようとする動きも出てきている。
 すなわち、各企業が個別に集積した顧客プロファイルや購買履歴などを統合して解析し、さらなる販売促進に利用しようとする動きである。
 図2には、2つの異なる企業、例えば2つの異なるネット販売業者である企業1と、企業2がそれぞれ個別に集積したユーザ対応商品購入履歴データを示している。
 図2(1)に示すデータは、企業1が集積したユーザ対応商品購入履歴データであり、ユーザ1~n各々が、企業1の提供する商品1,1~1,k(item:I_(1,1)~I_(1,k))中の、どの商品を購入したかを示すデータである。
 図2(2)に示すデータは、企業2が集積したユーザ対応商品購入履歴データであり、ユーザ1~n各々が、企業2の提供する商品2,1~2,m(item:I_(2,1)~I_(2,m))中の、どの商品を購入したかを示すデータである。
 図2に示すデータは、図1と同様、
 商品購入履歴ありの場合は、[1]、
 商品購入履歴なしの場合は、[0]
 これらの商品購入履歴識別情報を設定している。
 図2(1),(2)とも、同一のユーザ数:1~nに対する商品購入履歴情報を示している。
 図2(1)に示す商品1,1~1,k(item:I_(1,1)~I_(1,k))のI_(x,y)に示すx(x=1)は、セキュアデータを保持する企業や情報処理装置の識別子であり、y(y=1~k)は商品識別子である。
 同様に、図2(2)に示す商品2,1~2,m(item:I_(2,1)~I_(2,m))のI_(x,y)に示すx(x=2)は、セキュアデータを保持する企業や情報処理装置の識別子であり、y(y=1~m)は商品識別子である。
 図2(1)に示す企業1は、n人のユーザに対するk種類の商品の購入履歴情報を保持し、図2(2)に示す企業2は、n人のユーザに対するm種類の商品の購入履歴情報を保持していることを示している。
 図2には、2つの異なる企業、例えば2つの異なるネット販売業者である企業1と、企業2がそれぞれ個別に集積したユーザ対応商品購入履歴データを示しているが、これら各企業が保有する個別のデータベースを統合して解析を行うことで、より効果的な商品販売や広告提供が可能となる。
 さらに、ユーザの商品購入履歴情報のみならず、様々な広告の閲覧履歴情報、番組視聴履歴情報等も統合して、各ユーザ向けの最適な広告や情報を提供しようとする試みも行われている。
 図3は、放送局等、番組提供企業3と、ネット販売業者である企業4がそれぞれ個別に集積したデータを示している。
 図3(1)に示すデータは、放送局等の企業3が集積したユーザ対応番組視聴履歴データであり、ユーザ1~n各々が、企業3の放送する番組3,1~3,k(item:I_(3,1)~I_(3,k))中の、どの番組を視聴したかを示すデータである。
 図3(2)に示すデータは、企業4が集積したユーザ対応商品購入履歴データであり、ユーザ1~n各々が、企業4の提供する商品4,1~4,m(item:I_(4,1)~I_(4,m))中の、どの商品を購入したかを示すデータである。
 図3に示すデータは、
 番組視聴履歴あり、または商品購入履歴ありの場合は、[1]、
 番組視聴履歴なし、または商品購入履歴なしの場合は、[0]
 これらの履歴識別情報を設定している。
 図3(1),(2)とも、同一のユーザ数:1~nに対する番組視聴履歴、または商品購入履歴情報を示している。
 図3(1)に示す番組3,1~3,k(item:I_(3,1)~I_(3,k))のI_(x,y)に示すx(x=3)は、セキュアデータを保持する企業や情報処理装置の識別子であり、y(y=1~k)は番組識別子である。
 同様に、図3(2)に示す商品4,1~4,m(item:I_(4,1)~I_(4,m))のI_(x,y)に示すx(x=4)は、セキュアデータを保持する企業や情報処理装置の識別子であり、y(y=1~m)は商品識別子である。
 図3(1)に示す企業3は、n人のユーザに対するk種類の番組の視聴履歴情報を保持し、図3(2)に示す企業4は、n人のユーザに対するm種類の商品の購入履歴情報を保持していることを示している。
 このように、商品販売業者同士の商品購入履歴情報のみならず、様々な広告の閲覧履歴情報、番組視聴履歴情報等も統合することで、各ユーザ向けの最適な広告や情報を提供することが可能となる。
 しかし、多くの場合、各企業が保持するデータは、ユーザの商品購入履歴情報等、公開が制限されるセキュアデータであり、各企業が保持するセキュアデータを相互に提供して解析することは許容し難いという問題がある。
  [2.ジャッカード(Jaccard)係数について]
 例えば、ある特定の商品を買う傾向が高いと推定されるユーザが特定できれば、そのユーザに対して、その商品の商品情報や広告を提供することで、より高い広告効果や、販売促進効果を得ることができる。
 具体的には、例えば、
 (1)ある商品Aを購入したユーザが、別の商品Bを購入する傾向が高いか低いか、
あるいは、
 (2)ある番組Cを視聴したユーザが、商品Dを購する傾向が高いか低いか。
 このような分析データは、特定の商品を購入する意欲の高いユーザを選別するための有効なデータとなる。
 このような推定処理に適用する指標値として、ジャッカード(Jaccard)係数が知られている。
 以下、ジャッカード(Jaccard)係数の算出処理例について説明する。
 図4は、図1と同様のデータであり、例えばネット販売業者等の企業が、ネット販売実績データに基づいて集積したユーザ対応の商品購入履歴データの例である。
 図4に示すデータは、n人のユーザ(ユーザ1~n)各々が、k個の商品1~k(item:I_1~I_k)中の、どの商品を購入したかを示すデータである。
 図4に示すデータにおいて、
 商品購入履歴ありの場合は、[1]、
 商品購入履歴なしの場合は、[0]、
 これらの商品購入履歴識別情報が設定されている。
 ジャッカード(Jaccard)係数は、例えばある商品を購入したユーザが、異なる商品に対する購入意欲が高いか否か等を判定する際等に利用可能なデータである。
 また、例えばある番組を視聴したユーザが、ある特定の商品に対する購入意欲が高いか否か等を判定する際等にも利用可能である。
 具体的には、例えば、図4に示すデータ中の商品I_pを購入したユーザが、図4に示すデータ中の異なる商品I_qを購入する可能性を推定する処理等に利用される。
 図4に示すデータにおいて、図4に示すデータ中の商品I_pを購入したユーザを表すベクトルと、図4に示すデータ中の商品I_qを購入したユーザを表すベクトルを、それぞれ生成し、これらのベクトル間の類似度(相関量)を算出する。
 これらのベクトル間の類似度(相関量)が高ければ、商品I_pを購入したユーザが、異なる商品I_qを購入する可能性が高いと推定することができる。
 一方、これらのベクトル間の類似度(相関量)が低い場合は、商品I_pを購入したユーザが、異なる商品I_qを購入する可能性が低いと推定することができる。
 具体的なジャッカード(Jaccard)係数の算出処理例について説明する。
 例えば、図4に示すデータ中の商品I_1を購入したユーザを表すユーザ数nに相当するn次元のベクトル(1,1,1,0,1,・・・,1)と、図4に示すデータ中の商品I_2を購入したユーザを表すユーザ数nに相当するn次元のベクトル(1,0,0,1,0,・・・,1)を、それぞれ生成し、これらのベクトル間の類似度(相関量)を算出する。
 これらのベクトル間の類似度(相関量)が高ければ、商品I_1を購入したユーザが、異なる商品I_2を購入する可能性が高いと推定することができる。
 一方、これらのベクトル間の類似度(相関量)が低い場合は、商品I_1を購入したユーザが、異なる商品I_2を購入する可能性が低いと推定することができる。
 商品I_iを購入したユーザを表すユーザ数nに相当するn次元のベクトルを商品I_iの購入ベクトルと呼ぶ。
 商品I_iの購入ベクトルは、以下の(式1)として示すことができる。
Figure JPOXMLDOC01-appb-M000001
 上記(式1)において、
 行列:x_iは、行列:x_iの転置行列を示している。
 行列:x_iの要素として示すx_tは、ユーザID=tのユーザによるアイテム(商品)I_iの購入の有無を示す。
 このとき、アイテム(商品)I_iと、アイテム(商品)I_jとの間のアイテム間相関量を示すジャッカード(Jaccard)係数J_ijは、以下の(式2)のように定義される。
Figure JPOXMLDOC01-appb-M000002
 なお、上記(式2)中のx_i、x_iは、以下の(式3a)、(式3b)に示す行列(n次元ベクトル)である。
Figure JPOXMLDOC01-appb-M000003
 上記(式2)で定義されるジャッカード(Jaccard)係数は、異なるアイテム間の相関量や類似度を示し、アイテム間協調フィルタリングで用いる相関量の一つである。
 上記(式2)で定義されるジャッカード(Jaccard)係数:J_ijの値が大きければ、アイテム(商品)I_iと、アイテム(商品)I_jとの間のアイテム間相関量が大きいと判断される。すなわち、例えば、アイテム(商品)I_iを購入したユーザは、アイテム(商品)I_jを購入する可能性が高いと推定することができる。
 一方、上記(式2)で定義されるジャッカード(Jaccard)係数:J_ijの値が小さければ、アイテム(商品)I_iと、アイテム(商品)I_jとの間のアイテム間相関量が小さいと判断される。すなわち、例えば、アイテム(商品)I_iを購入したユーザが、アイテム(商品)I_jを購入する可能性が高いとは言えないと推定することができる。
 このように、ジャッカード(Jaccard)係数は、ある1つの商品等、1つのアイテムに関する情報(ユーザ対応商品購入情報等)と、別のアイテムの情報(ユーザ対応商品購入情報等)との相関を判定するための指標値として利用される。
 なお、上記(式2)で示されるジャッカード(Jaccard)係数は、(式2a)で示すように、アイテム(商品)I_iの購入有無データ(x_t)と、アイテム(商品)I_jの購入有無データ(x_t)との内積、すなわち購入ベクトル間の内積に依存する値となる。
 すなわち、アイテム(商品)I_iの購入有無データ(x_t)と、アイテム(商品)I_jの購入有無データ(x_t)との内積(購入ベクトル間の内積)を算出し、この内積を各アイテム間の相関(類似性)指標値として利用することも可能である。
  [3.セキュア計算の概要について]
 上述したジャッカード(Jaccard)係数算出処理例は、相関関係の算出対象となる2つの商品、各々のユーザ購入有無情報が得られている場合の係数算出処理例である。
 すなわち、図4に示すアイテム(商品)I_iの購入ベクトルと、アイテム(商品)I_jの購入ベクトルの2つのベクトルが得られている場合には、上記(式2)を用いてジャッカード(Jaccard)係数を算出することができる。
 例えば、図4に示す商品購入履歴情報を取得している1つの企業が、図4に示す商品購入履歴情報を用いてジャッカード(Jaccard)係数を算出することで、複数の商品間の購入有無の相関関係を得ることができる。
 しかし、このような限られたデータを利用して得られる情報には限界がある。
 多くの企業は、それぞれ個別に集積した異なる商品購入履歴情報や、番組視聴履歴情報等を保持している。
 これら、各企業が保有する個別のデータベースを統合して解析を行うことで、より効果的な商品販売や広告提供が可能となる。
 しかし、前述したように、多くの場合、各企業が保持する商品購入履歴情報等は、公開が制限される個人データや機微データ等のセキュアデータであり、各企業が保持するセキュアデータを相互に提供して解析することは許容し難いという問題がある。
 また、企業にとっては、これらのデータは経済的価値がある資産であり、他社に渡したくないという事情がある。
 その一方で、異なる企業間でデータを組み合わせて解析を行い、さらなる商品販売促進のための広告提供などを行いたいといったニーズがある。
 しかし、公開が制限される個人データや機微データ等のセキュアデータを相互に提供することは許容されない。
 例えば、先に図2を参照して説明したように、2つの異なる企業1,2が、個別の商品購入履歴情報を保持している場合、企業1は、企業2のデータ、すなわち、図2(2)に示すデータを取得することができない。同様に、企業2は、企業1のデータ、すなわち、図2(2)に示すデータを取得することができない。
 しかしながら、例えば、図2(2)に示すデータを保持している企業2が、企業1の商品1,1(I_(1,1))を購入したユーザが、企業2の商品2,1(I_(2,1))を購入しやすい傾向にあるか否かの推定情報を得たいという場合も少なくない。
 以下では、2つの企業が個別に保有するセキュアデータ、すなわち、商品購入履歴情報や、番組視聴履歴情報等、開示が許容されないセキュアデータを保持している場合に、これらのセキュアデータを相互に開示することなく、各セキュアデータ間の相関や類似性を示す指標値を算出する構成について説明する。
 なお、、各セキュアデータ間の相関や類似性を示す指標値としては、例えば前述したジャッカード(Jaccard)係数や、購入ベクトル間の内積等がある。
 各企業が保持する商品購入履歴情報等は、公開が制限される個人データや機微データ等のセキュアデータである。
 このような、公開の制限されたセキュアデータを開示することなくセキュアデータ間の演算結果、例えば、購入ベクトル間の内積等を算出するための処理としてセキュア計算が知られている。
 セキュア計算とは、公開が許容されないセキュアデータを直接利用することなく、セキュアデータに基づいて生成される変換データを用いた演算により、セキュアデータの演算結果、例えばセキュアデータの加算結果、乗算結果等、様々なセキュアデータの演算結果を取得可能とした計算処理である。
 このように、セキュアデータの変換データを用いた計算処理をセキュア計算と呼ぶ。
 セキュア計算の計算処理には、セキュアデータ自体は利用されず、セキュアデータの変換データが利用される。変換データとは、例えばセキュアデータの暗号化データや、分割データ等、元のセキュアデータとは異なる様々なタイプのデータである。
 セキュア計算の一例として、例えば非特許文献1(O.Goldreich,S.Micali and A.Wigderson.How to play any mental game.STOC'87,pp.218-229,1987.)に記載のGMW方式がある。
 GMW方式に従ったセキュア計算処理の概要について、図5、図6を参照して説明する。
 図5は、セキュアデータの加算値を、GMW方式に従ったセキュア計算によって算出する処理例を示す図である。
 装置A,210は、セキュアデータX(例えば説明変数(x))を保持している。
 また、装置B,220は、セキュアデータY(例えば結果変数(y))を保持している。
 これらのセキュアデータX,Yは、公開することが好ましくない個人データ等のセキュアデータである。
 装置A,210は、セキュアデータXを、以下のように、2つのデータに分割する。なお、Xを、予め規定した数値mの剰余データ:mod mとして設定する。
 X=((x_1)+(x_2))mod_m
 上記式において、(x_1)は、0~(m-1)から一様にランダムに選択し、
 (x_2)は、
 (x_2)=(X-(x_1))mod m
 上記式を満たすように定める。
 このように、2つの分割データ(x_1),(x_2)を生成する。
 なお、ここで分割対象となるデータは、例えば、図1に示すセキュアデータである、ある標本(ユーザ)の性別の値(1)であり、m=100としたとき、値(1)を(30)と(71)に分割する、あるいは(45)と(56)等、様々な異なる態様の分割データを設定することができる。
 性別の値(0)の場合は、分割値は(40)と(60)に分割する等の処理が可能である。
 年齢(54)は(10)と(44)に分割する等の処理が可能であり、その他の様々な分割処理が可能である。
 重要なことは、単独の変換データ(ここでは1つの分割データ)から元のセキュアデータ(説明変数)が特定できないことが重要である。
 例えば、分割データはセットで公開されず、例えば、一方の分割データのみが公開、すなわち、他の装置に提供される。
 一方、装置B,220も、セキュアデータYを、以下のように、2つのデータに分割する。
 Y=((y_1)+(y_2))mod_m
 上記式において、(y_1)は、0~(m-1)から一様にランダムに選択し、
 (y_2)は、
 (y_2)=(Y-(y_1))mod m
 上記式を満たすように定める。
 このように、2つの分割データ(y_1),(y_2)を生成する。
 図5に示すように、装置A,210と、装置B,220は、ステップS20において、上記の分割データの一部を相互に提供する。
 装置A,210は、装置B,220に分割データ(x_1)を提供する。
 一方、装置B,220は、装置A,210に、分割データ(y_2)を提供する。
 X,Yの各々はセキュアデータであり、外部に流出させることはできない。
 しかし、Xの分割データである(x_1)、(x_2)の一方のデータのみを取得しても、セキュアデータXを特定することはできない。
 同様に、Yの分割データである(y_1)、(y_2)の一方のデータのみを取得しても、セキュアデータYを特定することはできない。
 従って、セキュアデータの分割データの一部のみのデータは、セキュアデータを特定できないデータであり、外部に出力することが許容される。
 このように、装置A,210は、分割データ(x_1)を、装置B,220の計算処理実行部に出力する。
 一方、装置B,220は、分割データ(y_2)を、装置A,210の計算処理実行部に出力する。
  (ステップS21a)
 装置A,210の計算処理実行部は、ステップS21aにおいて、分割データを利用して、以下の分割データ同士の加算処理を実行する。
 ((x_2)+(y_2))mod m
 装置A,210は、この加算結果を装置B,220の計算処理実行部に出力する。
  (ステップS21b)
 一方、装置B,220の計算処理実行部は、ステップS21bにおいて、分割データを利用して、以下の分割データ同士の加算処理を実行する。
 ((x_1)+(y_1))mod m
 装置B,220は、この加算結果を装置A,210の計算処理実行部に出力する。
  (ステップS22a)
 次に、装置A,210の計算処理実行部は、ステップS22aにおいて、以下の処理を実行する。
 (1)ステップS21aにおいて算出した分割データの加算結果、(x_2)+(y_2)、
 (2)装置B,220から入力した分割データの加算結果、(x_1)+(y_1)、
 これらの2つの加算結果を、さらに加算する。すなわち、以下の計算を実行する。
 ((x_1)+(y_1)+(x_2)+(y_2))mod m
 この分割データの総加算値は、元のセキュアデータXとYの加算値に等しい。
 すなわち、
 ((x_1)+(y_1)+(x_2)+(y_2))mod m
 =X+Y
 となる。
  (ステップS22b)
 一方、装置B,220の計算処理実行部は、ステップS22bにおいて、以下の処理を実行する。
 (1)ステップS21bにおいて算出した分割データの加算結果、(x_1)+(y_1)、
 (2)装置A,210から入力した、分割データの加算結果、(x_2)+(y_2)、
 これらの2つの加算結果を、さらに加算する。すなわち、以下の計算を実行する。
 ((x_1)+(y_1)+(x_2)+(y_2))mod m
 この分割データの総加算値は、元のセキュアデータXとYの加算値に等しい。
 すなわち、
 ((x_1)+(y_1)+(x_2)+(y_2))mod m
 =X+Y
 となる。
 このように、装置A,装置Bは、いずれの装置も、それぞれのセキュアデータX,Yを外部に出力することなく、セキュアデータX,Yの加算値、すなわち、X+Yを算出することができる。
 この図5に示す処理が、GMW方式に従ったセキュア計算を適用したセキュアデータの加算値算出処理例である。
 なお、図5を参照して説明した上記の処理は、セキュアデータX,Yの加算値算出処理の概要を簡略化して説明したものであり、実際のセキュアデータの加算処理や乗算処理を行なう場合、一般的には、1回のセキュア計算によって得られた計算結果を次のセキュア計算の入力値として適用する等、セキュア計算を繰り返し実行することが必要である。
 図6は、セキュアデータの乗算値を、GMW方式に従ったセキュア計算によって算出する処理例を示す図である。
 装置A,210は、セキュアデータXを保持している。
 また、装置B,220は、セキュアデータYを保持している。
 これらのセキュアデータX,Yは、公開することが好ましくないセキュアデータである。
 装置A,210は、セキュアデータXを2つのデータに分割する。
 X=((x_1)+(x_2))mod m
 このように、セキュアデータXをランダムに分割して2つの分割データ(x_1),(x_2)を生成する。
 一方、装置B,220も、セキュアデータYを2つのデータに分割する。
 Y=((y_1)+(y_2))mod m
 このように、セキュアデータYをランダムに分割して2つの分割データ(y_1),(y_2)を生成する。
 図6に示すステップS30において、装置A,210は、装置B,220の計算処理実行部に、分割データ(x_1)を提供する。
 一方、装置B,220は、装置A,210の計算処理実行部に、分割データ(y_2)を提供する。
 X,Yはセキュアデータであり、外部に流出させることはできない。
 しかし、Xの分割データである(x_1)、(x_2)の一方のデータのみを取得しても、セキュアデータXを特定することはできない。
 同様に、Yの分割データである(y_1)、(y_2)の一方のデータのみを取得しても、セキュアデータYを特定することはできない。
 従って、セキュアデータの分割データの一部のみのデータは、セキュアデータを特定できないデータであり、外部に出力することが許容される。
 このように、装置A,210は、分割データ(x_1)を、装置B,220の計算処理実行部に出力する。
 一方、装置B,220は、分割データ(y_2)を、装置A,210の計算処理実行部に出力する。
 装置A,210の計算処理実行部の処理について説明する。
 装置A,210は、Xの分割データである(x_1)、(x_2)と、装置B,220から受信したYの分割データ(y_1)を保持している。
 処理は、以下の手順で実行される。
 (ステップS31a)
 入力値を、x_2、
 出力値M(x_2)を、M_(x_2)=(x_2)×(y_1)+r、
 上記の入出力値設定とした[1-out-of-m OT]を、装置B,220と実行する。
 なお、[1-out-of-m OT (Oblivious Transfer)]は、以下の処理を実行する演算プロトコルである。
 送信者と選択者という2つのエンティティが存在する。
 送信者はm個の要素からなる入力値(M_0,M_1,・・・,M_(m-1))を持つ。
 選択者はσ∈{0,1,...,m-1}という入力値を持つ。
 選択者は、m個の要素を持つ送信者に1つの要素の送信を要求し、選択者は、1つの要素M_σの値のみを得ることができる。その他の(m-1)個の要素:M_i(i≠σ)は入手できない。
 一方、送信者は選択者の入力値σを知ることができない.
 このように、[1-out-of-m OT]プロトコルは、m個の要素から1要素のみを送受信して演算処理を進めるプロトコルであり、m個の要素のどの要素が送受信されたかについては、要素受信側は特定できない設定としたプロトコルである。
 (ステップS32a)
 入力値を、y_2、
 出力値M_(y_2)'を、M_(y_2)'=(x_1)×(y_2)+r'、
 上記の入出力値設定とした[1-out-of-m OT]を、装置B,220と実行する。
  (ステップS33a)
 装置A,210の出力値として、出力値:M_(x_2)+M_(y_2)を以下の式に従って計算する。
 M_(x_2)+M_(y_2)
 =((x_2)×(y_2)+(x_2)×(y_1)+r+(x_1)×(y_2)+r')mod m
 一方の、装置B,220の計算処理実行部の処理について説明する。
 装置B,220は、Yの分割データである(y_1)、(y_2)と、装置A,210から受信したXの分割データ(x_1)を保持している。
 処理は、以下の手順で実行される。
  (ステップS31b)
 乱数r∈{0,...,m-1}を選び、セキュアデータYの分割値y_1に基づいて、[1-out-of-m OT]で用いる入力値列、
 i×(y_1)+r
 ただし、i=0,1,・・・,(m-1)
 上記の入力値列を生成する。
 具体的には、以下の入力値列:M_0~M_(m-1)を生成する。
 M_0=0×(y_1)+r,
 M_1=1×(y_1)+r,
  ...,
 M_(m-1)=(m-1)×(y_1)+r、
 これらの入力値列を生成する。
 さらに、前述したステップS31aの設定に従った[1-out-of-m OT]を、装置A,210と実行する。
  (ステップS32b)
 乱数r'∈{0,...,m-1}を選び、分割値y_1に基づいて、[1-out-of-m OT]で用いる入力値列、
 i×(x_1)+r'
 ただし、i=0,1,・・・,(m-1)
 上記の入力値列を生成する。
 具体的には、以下の入力値列:M'_0~M'_(m-1)を生成する。
 M'_0=0×(x_1)+r',
 M'_1=1×(x_1)+r'
  ...,
 M'_(m-1)=(m-1)×(x_1)+r'
 これらの入力値列を生成する。
 さらに、前述したステップS32aの設定に従った[1-out-of-m OT]を、装置A,210と実行する。
  (ステップS33b)
 装置B,220の出力値として、以下の出力値を計算する。
 ((x_1)×(y_1)-r-r')mod m
 上記の値を、装置B,220の出力値として計算する.
 ステップS33aにおいて装置A,210が算出した出力値と、ステップS33bにおいて装置B,220が算出した出力値を用いた以下の計算処理によって、セキュアデータX,Yの乗算値X×Yが算出できる。
 (((x_2)×(y_2)+(x_2)×(y_1)+r+(x_1)×(y_2)+r')+((x_1)×(y_1)-r-r')
 =((x_1)+(x_2))×((y_1)+(y_2))
 =X×Y
 装置A,210と、装置B,220間で、ステップS33a、ステップS33bの算出結果を相互に提供することで、上記のセキュアデータX,Yの乗算値X×Yが算出できる。
 このように、装置A,装置Bは、いずれの装置も、それぞれのセキュアデータX,Yを外部に出力することなく、セキュアデータX,Yの乗算値、すなわち、XYを算出することができる。
 この図6に示す処理が、GMW方式に従ったセキュア計算を適用したセキュアデータの乗算値算出処理例である。
 なお、図6を参照して説明した上記の処理は、セキュアデータX,Yの乗算値算出処理の概要を簡略化して説明したものであり、実際のセキュアデータの加算処理や乗算処理を行なう場合、一般的には、1回のセキュア計算によって得られた計算結果を次のセキュア計算の入力値として適用する等、セキュア計算を繰り返し実行することが必要である。
 また、図5、図6に示すセキュア計算処理例は、セキュア計算の一例であり、セキュア計算態様には、その他、様々な異なる計算処理が可能である。
 しかし、セキュア計算は、変換データの生成、変換データの装置間の送受信、変換データを適用した計算処理、これらの処理が計算に適用するセキュアデータのデータ量に応じて増大することになる。具体的には、例えば、セキュア計算による乗算処理では、計算量が大きいOblivious Transfer(紛失通信)プロトコルを実行する必要がある。この紛失通信プロトコルは極めて計算量が大きい。この理由は、公開鍵暗号で用いるような多倍長整数のべき乗演算が必要となることなどが理由である。
 例えば、n要素からなるk本のベクトルとn要素からなるm本のベクトルの全組合せで内積を求める場合、合計でkmn回のセキュア乗算が必要となる。
 これを図5、図6を参照して説明したような一般的なセキュア計算を用いて算出しようとすると、計算量、通信料が膨大となり、必要となる計算リソースや計算時間が大きくなり、実用的なレベルを超えてしまうという問題がある。
  [4.計算量を削減したセキュア計算によるセキュアデータ間の関係性を推定する処理について]
 以下、上述の問題点を解決する構成、すなわち、セキュアデータ間の関係性、例えば相関性や類似性を、計算量を削減したセキュア計算を適用して算出する処理について説明する。
 図7は、本開示の処理を実行する1つの情報処理システム構成例を示す図である。
 図7に示すように、2つの情報処理装置A,110、120が存在する。
 これらの情報処理装置A,110と情報処理装置B,120は、2つの異なる企業、例えば2つの異なるネット販売業者である企業1と、企業2の情報処理装置である。
 企業1は、情報処理装置A,110を有し、情報処理装置A,110の記憶部に例えば、図1~図4を参照して説明したと同様のユーザ対応の商品購入履歴データ等を保持している。
 企業2は、情報処理装置B,120を有し、情報処理装置B,120の記憶部に例えば、図1~図4を参照して説明したと同様のユーザ対応の商品購入履歴データ等を保持している。
 2つの情報処理装置A,110、情報処理装置B,120の各々が記憶部に保持するセキュアデータの一例を図8に示す。
 図8(1)に示すデータは、企業1が集積し、企業1の所有する情報処理装置A,110の記憶部に格納されたユーザ対応商品購入履歴データであり、ユーザ1~n各々が、企業1の提供する商品1,1~1,k(item:I_(1,1)~I_(1,k))中の、どの商品を購入したかを示すデータである。
 図8(2)に示すデータは、企業2が集積し、企業2の所有する情報処理装置B,120の記憶部に格納されたユーザ対応商品購入履歴データであり、ユーザ1~n各々が、企業2の提供する商品2,1~2,m(item:I_(2,1)~I_(2,m))中の、どの商品を購入したかを示すデータである。
 図8に示すデータには、図1他を参照して説明したと同様、
 商品購入履歴ありの場合は、[1]、
 商品購入履歴なしの場合は、[0]
 これらの商品購入履歴識別情報が設定されている。
 図8(1),(2)とも、同一のユーザ数:1~nに対する商品購入履歴情報を示している。
 図8(1)に示す商品1,1~1,k(item:I_(1,1)~I_(1,k))のI_(x,y)に示すx(x=1)は、セキュアデータを保持する企業や情報処理装置の識別子であり、y(y=1~k)は商品識別子である。
 同様に、図8(2)に示す商品2,1~2,m(item:I_(2,1)~I_(2,m))のI_(x,y)に示すx(x=2)は、セキュアデータを保持する企業や情報処理装置の識別子であり、y(y=1~m)は商品識別子である。
 図8(1)に示す企業1は、n人のユーザに対するk種類の商品の購入履歴情報を保持し、図8(2)に示す企業2は、n人のユーザに対するm種類の商品の購入履歴情報を保持していることを示している。
 図8には、2つの異なる企業、例えば2つの異なるネット販売業者である企業1と、企業2がそれぞれ個別に集積したユーザ対応商品購入履歴データを示しているが、これら各企業が保有する個別のデータベースを統合して解析を行うことで、より効果的な商品販売や広告提供が可能となる。
 しかし、これらの各データは公開が制限されるセキュアデータである。
 従って、各企業の情報処理装置A,110と、情報処理装置B,120に格納されたこれらのセキュアデータは、各情報処理装置間で、そのまま送受信することは許容されない。
 以下に説明する本開示の処理を行なうことで、各情報処理装置間でセキュアデータを送受信することなく、2つの情報処理装置A,110と、情報処理装置B,120の保有するセキュアデータ間の関連性を示す指標値、例えば先に説明した購入ベクトル間のジャッカード(Jaccard)係数や、内積を、より効率的に算出することが可能となる。
 図9に、2つの情報処理装置A,110と、情報処理装置B,120の保有するセキュアデータ間の関連性を示す1つの指標値であるジャッカード(Jaccard)係数の対応表を示す。
 ジャッカード(Jaccard)係数は、先に(式2)を参照して説明したように、ある商品aを購入したユーザを表すユーザ数n対応のn次元ベクトルである商品aの購入ベクトルと、商品bの購入ユーザを表すユーザ数n対応のn次元ベクトルである商品bの購入ベクトルとのベクトル間類似度を示す値として算出される。
 図9には、
 情報処理装置A,110を保持する企業1の提供商品1,1~1,k(item:I_(1,1)~I_(1,k))、および、
 情報処理装置B,120を保持する企業2の提供商品2,1~2,m(item:I_(2,1)~I_(2,m))、
 これらk+m個の商品識別子を横軸、縦軸に設定した表(マトリックス)を示している。
 ジャッカード(Jaccard)係数は、例えば、異なる2つの商品間の購入ベクトルの類似度を示す値として算出される。
 図9のように、商品種類がk+m個ある場合、図9に示すマトリックス中の(1),(2),(3)の各領域に、異なる商品(商品iと商品j)間のジャッカード(Jaccard)係数を算出することができる。
 領域(1)は、情報処理装置A,110を保持する企業1の提供商品1,1~1,k(item:I_(1,1)~I_(1,k))間のジャッカード(Jaccard)係数算出領域である。
 領域(2)は、情報処理装置A,110を保持する企業1の提供商品1,1~1,k(item:I_(1,1)~I_(1,k))と、情報処理装置B,120を保持する企業2の提供商品2,1~2,m(item:I_(2,1)~I_(2,m))との間のジャッカード(Jaccard)係数算出領域である。
 領域(3)は、情報処理装置B,120を保持する企業2の提供商品2,1~2,m(item:I_(2,1)~I_(2,m))間のジャッカード(Jaccard)係数算出領域である。
 これらの各領域において算出されるジャッカード(Jaccard)係数は、以下の(式4a)~(式4c)として示される。
Figure JPOXMLDOC01-appb-M000004
 (式4a)は、領域(1)におけるジャッカード(Jaccard)係数算出式である。
 (式4b)は、領域(2)におけるジャッカード(Jaccard)係数算出式である。
 (式4c)は、領域(3)におけるジャッカード(Jaccard)係数算出式である。
 ジャッカード(Jaccard)係数J_ijは、アイテム(商品)I_iと、アイテム(商品)I_jとの間のアイテム間相関量を示す。
 領域(1)におけるジャッカード(Jaccard)係数算出式である上記の(式4a)は、先に説明した(式2)と同様の式である。
 x_i、x_jは、いずれも、情報処理装置A,110を保持する企業1の提供商品1,1~1,k(item:I_(1,1)~I_(1,k))のいずれかの商品に関するn人のユーザ(ユーザ1~n)の商品購入有無(有り:1、無し:0)情報からなる行列である。
 先に説明した(式3a)で表現される行列(n次元ベクトル)である。
 また、x_iは、x_iの転置行列であり、先に説明した(式3b)で表現される行列(n次元ベクトル)である。
 従って、図9に示す領域(1)のジャッカード(Jaccard)係数は、企業1の情報処理装置A,110に格納されたデータ(セキュアデータ)のみを利用して情報処理装置A,110内部で算出することができる。
 また、領域(3)におけるジャッカード(Jaccard)係数算出式である(式4c)中の、y_i、y_jは、いずれも、情報処理装置B,120を保持する企業2の提供商品2,1~2,m(item:I_(2,1)~I_(2,m))のいずれかの商品に関するn人のユーザ(ユーザ1~n)の商品購入有無(有り:1、無し:0)情報からなる行列である。
 従って、図9に示す領域(3)のジャッカード(Jaccard)係数は、企業2の情報処理装置B,120に格納されたデータ(セキュアデータ)のみを利用して情報処理装置B,120内部で算出することができる。
 これに対して、領域(2)におけるジャッカード(Jaccard)係数算出式である(式4b)は、
 情報処理装置A,110を保持する企業1の提供商品1,1~1,k(item:I_(1,1)~I_(1,k))のいずれかの商品に関するn人のユーザ(ユーザ1~n)の商品購入有無(有り:1、無し:0)情報からなる行列:x_iと、
 情報処理装置B,120を保持する企業2の提供商品2,1~2,m(item:I_(2,1)~I_(2,m))のいずれかの商品に関するn人のユーザ(ユーザ1~n)の商品購入有無(有り:1、無し:0)情報からなる行列:y_iが含まれる。
 従って、図9に示す領域(2)のジャッカード(Jaccard)係数は、企業1の情報処理装置A,110に格納されたデータ(セキュアデータ)と、企業2の情報処理装置B,120に格納されたデータ(セキュアデータ)の両者を利用しなければ算出することができない。
 すなわち、この領域(2)のジャッカード(Jaccard)係数を算出するためには、先に図5、図6を参照して説明したセキュア計算を行うことが必要となる。
 例えば情報処理装置A,110の記憶部内に格納されたセキュアデータを変換して、情報処理装置B,120に提供し、同様に、情報処理装置B,120の記憶部内に格納されたセキュアデータを変換して、情報処理装置A,110に提供し、これらの変換データを適用したセキュア計算により算出することが必要となる。すなわち、例えば、先に図5、図6を参照して説明したセキュア計算を行うことが必要となる。
 図5、図6を参照して説明したように、セキュア計算では、変換データの生成、送受信、変換データを用いた計算、これらの処理コストが増大してしまうという問題がある。
 以下に説明する本開示の処理においては、このセキュア計算を効率的に実行する。すなわち、各情報処理装置間でセキュアデータを送受信することなく、2つの情報処理装置A,110と、情報処理装置B,120の保有するセキュアデータ間の関連性を示す指標値、例えば先に説明した購入ベクトル間のジャッカード(Jaccard)係数や、内積を、より効率的に算出することを可能としている。
 以下、具体的な処理について説明する。
 なお、(式4a)~(式4c)で示されるジャッカード(Jaccard)係数は、先に説明した(式2a)で示すように、アイテム(商品)I_iの購入有無データ(x_t)と、アイテム(商品)I_jの購入有無データ(x_t)との内積、すなわち購入ベクトル間の内積に依存する値となる。
 すなわち、アイテム(商品)I_iの購入有無データ(x_t)と、アイテム(商品)I_jの購入有無データ(x_t)との内積(購入ベクトル間の内積)を算出し、この内積を各アイテム間の相関(類似性)指標値として利用することも可能である。
 以下では、具体的な処理例として、購入ベクトル間の内積を効率的に算出する処理について説明する。
 なお、先に説明した(式2)、(式2a)の関係から理解されるように、算出した内積を適用して、ジャッカード(Jaccard)係数を算出することも可能となる。
  [4-a.本開示の処理を行なう前提となる設定例について]
 まず、本開示の処理を行なう前提となる設定例について説明する。
 図7に示すように、2つの情報処理装置A,110、120が存在する。
 これらの情報処理装置A,110と情報処理装置B,120は、2つの異なる企業、例えば2つの異なるネット販売業者である企業1と、企業2の情報処理装置である。
 企業1は、情報処理装置A,110を有し、情報処理装置A,110の記憶部に例えば、図1~図4を参照して説明したと同様のユーザ対応の商品購入履歴データ等を保持している。
 企業2は、情報処理装置B,120を有し、情報処理装置B,120の記憶部に例えば、図1~図4を参照して説明したと同様のユーザ対応の商品購入履歴データ等を保持している。
 具体的には、例えば、先に説明した図8に示すようなデータである。
 図8に示すデータには、図1他を参照して説明したと同様、
 商品購入履歴ありの場合は、[1]、
 商品購入履歴なしの場合は、[0]
 これらの商品購入履歴識別情報が設定されている。
 以下のセキュアデータ間の相関算出処理の説明においては、図8に示す商品購入履歴有無のデータ(1,0)は、図10に示すようなデータとして表現して説明する。
 図10に示すように、情報処理装置A,110、情報処理装置B,120とも、n人の同じユーザ対応の商品購入履歴データを有している。
 x_tは、企業1の情報処理装置A,110に格納されたユーザ対応の商品購入履歴情報であり、ユーザID=tのユーザによるアイテム(商品)I_iの購入の有無を示す。
 y_tは、企業2の情報処理装置B,120に格納されたユーザ対応の商品購入履歴情報であり、ユーザID=tのユーザによるアイテム(商品)I_jの購入の有無を示す。
 なお、これらのデータは、いずれもセキュアデータであり、公開や、外部流出が許容されないデータである。
 図10に示すように、情報処理装置A,110は、n人のユーザ(ユーザ1~n)各々が、k個の商品1~k(item:I_1~I_k)各々の商品購入履歴情報として、以下のデータ、すなわち、
 x_t (i=1~k,t=1~n)
 上記のセキュアデータを記憶部に格納している。
 一方、情報処理装置B,120は、n人のユーザ(ユーザ1~n)各々が、m個の商品1~m(item:J_1~J_m)各々の商品購入履歴情報として、以下のデータ、すなわち、
 y_t (j=1~m,t=1~n)
 上記のセキュアデータを記憶部に格納している。
 以下に説明する処理の目的は、
 情報処理装置A,110の保持するセキュアデータである商品購入履歴情報、すなわち、x_t (i=1~k,t=1~n)
 上記のデータと、
 情報処理装置B,120の保持するセキュアデータである商品購入履歴情報、すなわち、y_t (j=1~m,t=1~n)
 上記のデータとの相関を求めることである。
 相関指標値は、例えば、前述したジャッカード(Jaccard)係数や、内積(購入ベクトルの内積)である。
 情報処理装置A,110の保持するセキュアデータである商品購入履歴情報をデータD1とし、情報処理装置B,120の保持するセキュアデータである商品購入履歴情報をデータD2とする。
 データD1、データD2は以下のデータによって構成される。
 (データD1)
 n要素(=ユーザ数)からなるk本(=商品数)のベクトル:x_i、
 x_i=(x_1,x_2,・・・,x_n)
 (1≦i≦k)、x_t∈{0,1}
 (データD2)
 n要素(=ユーザ数)からなるm本(=商品数)のベクトル:y_j、
 y_j=(y_1,y_2,・・・,y_n)
 (1≦j≦m)、y_t∈{0,1}
 これらの2つのセキュアデータD1とD2から、セキュア計算を用いて互いのデータを共有することなく、例えば、データD1に含まれるベクトルとデータD2に含まれるベクトル間の相関指標値(ジャッカード(Jaccard)係数や、ベクトル要素間の内積)を算出する。
 なお、データD1には、企業1が提供する商品数kに対応したk本のベクトルが含まれる。
 一方、データD2には、企業2が提供する商品数mに対応したm本のベクトルが含まれる。
 例えば、企業1が提供する商品数kに対応したk本のベクトル中の1つのベクトルV1と、企業2が提供する商品数mに対応したm本のベクトル中の1つのベクトルV2との相関が高いと判定されれば、ベクトルV1に対応する商品を購入したユーザは、ベクトルV2に対応する商品を購入する可能性が高いと判定される。
 具体的には、例えば、図10(1)に示すデータ中の商品I_1を購入したユーザを表すユーザ数nに相当するn次元のベクトル(1,1,1,0,1,・・・1)と、図10(2)に示すデータ中の商品J_1を購入したユーザを表すユーザ数nに相当するn次元のベクトル(0,1,0,0,1,・・・0)を、それぞれ生成し、これらのベクトル間の類似度(相関量)を算出する。
 これらのベクトル間の類似度(相関量)が高ければ、商品I_1を購入したユーザが、異なる商品J_1を購入する可能性が高いと推定することができる。
 一方、これらのベクトル間の類似度(相関量)が低い場合は、商品I_1を購入したユーザが、異なる商品J_1を購入する可能性が低いと推定することができる。
 以下では、まず、ベクトル間の類似性を示す相関指標値として、以下の(式5)によって示されるkm個の内積:IP_ijを算出する処理について説明する。
Figure JPOXMLDOC01-appb-M000005
 上記(式5)に従った内積の計算には、2つの異なる情報処理装置に個別に格納されたセキュアデータ相互の計算が必要となる。
 x_tは、情報処理装置A,110に格納されたセキュアデータであり、ユーザtが、商品iを購入したか否かを示すデータ(1または0)である。
 一方、y_tは、情報処理装置B,120に格納されたセキュアデータであり、ユーザtが、商品jを購入したか否かを示すデータ(1または0)である。
 これらは、いずれもセキュアデータであるため、情報処理装置A,110と、情報処理装置B,120間で、このまま送受信することは許容されない。
  [4-b.計算の高速化を実現する処理の概要について]
 上記の(式5)に従った内積の計算では、n要素(=ユーザ数)からなるk本(=企業1の提供商品数)のベクトルと、n要素からなるm本(=企業2の提供商品数)のベクトルの全組合せの乗算を用いて内積を求めることになる。
 この場合、合計でkmn回のセキュア乗算が必要となる。
 これらの計算を、例えば、先に図6を参照して説明したセキュア計算に従って実行すると、変換データの生成、変換データの送受信、ヘンカンデータを用いた計算処理、これらの処理が膨大なものとなってしまう。
 以下に説明する本開示の処理においては、各ユーザの購入履歴を示す1,0データ、すなわち、1(=購入履歴あり)、0(=購入履歴なし)、これらの1,0データそのものから構成されるベクトルではなく、1(=購入履歴あり)の値を持つ標本ID(ユーザID:t)を利用して計算処理を行なう。
 すなわち、先に説明した情報処理装置A,110の保持するセキュアデータである商品購入履歴情報:データD1と、情報処理装置B,120の保持するセキュアデータである商品購入履歴情報データ:D2を、以下のように変換する。
 情報処理装置A,110の保持するセキュアデータである商品購入履歴情報:データD1は以下のように変換する。
 (データD1)
 n要素(=ユーザ数)からなるk本(=商品数)のベクトル:x_i、
 x_i=(x_1,x_2,・・・,x_n)
 (1≦i≦k)、x_t∈{0,1}
 このデータD1に基づいて、各商品(i=1~k)各々について、購入履歴ありのユーザのユーザID(t)から構成されるk組の標本ID(ユーザID)の集合:C_iを生成する。
 集合:C_iは以下の(式6)によって示される。
Figure JPOXMLDOC01-appb-M000006
 なお、上記(式6)において、v_iは、x_iの中で1を取るIDの個数とする。
 ベクトル:x_iの中で、x_t=1を満たすユーザID=tが、上記(式6)で示す集合:C_iの要素として含まれる。
 なお、本例では、IDとして、ユーザID=1,2,・・・,nを利用しているが、他の識別できる数値の組合せを用いることも可能である。
 また、情報処理装置B,120の保持するセキュアデータである商品購入履歴情報:データD2は以下のように変換する。
 (データD2)
 n要素(=ユーザ数)からなるm本(=商品数)のベクトル:y_j、
 y_j=(y_1,y_2,・・・,y_n)
 (1≦j≦m)、y_t∈{0,1}
 このデータD2に基づいて、各商品(j=1~m)各々について、購入履歴ありのユーザのユーザID(t)から構成されるm組の標本ID(ユーザID)の集合:S_iを生成する。
 集合:S_iは以下の(式7)によって示される。
Figure JPOXMLDOC01-appb-M000007
 なお、上記(式7)において、w_iは、y_iの中で1を取るIDの個数とする。
 ベクトル:y_jの中で、y_t=1を満たすユーザID=tが、上記(式7)で示す集合:S_jの要素として含まれる。
 なお、本例では、IDとして、ユーザID=1,2,・・・,nを利用しているが、他の識別できる数値の組合せを用いることも可能である。
 このような変換を行うことで、入力値の個数を減らすことができる。
 例えば、ID数(ユーザ数n)が100万の場合において、設定値=1(ユーザの購入履歴あり)の個数の割合である密度が1%のとき、
 データD1、データD2として示すベクトル、すなわち、
 n要素(=ユーザ数)からなるk本(=商品数)のベクトル:x_i、
 x_i=(x_1,x_2,・・・,x_n)
 n要素(=ユーザ数)からなるm本(=商品数)のベクトル:y_j、
 y_j=(y_1,y_2,・・・,y_n)
 これらのベクトル表現とした場合、100万次元の入力値となる。
 しかし、上述した集合:C_i、S_j、すなわち(式6)、(式7)で示す集合:C_i、S_jを用いて表現することで、1万個オーダの入力値に減少させることができる。
 以下に説明する本開示の処理は、上記の2組の集合を比較し、重複するIDの個数を求めることで、重複するIDの個数に基づく内積を求める。
 例えば、
 C={1,2,3}、
 S={2,3,4}
 このとき、{2、3}が重複する。
 重複するIDの個数は2であり、出力(内積)は2となる。
 出力値は、重複するIDの個数に相当し、重複するIDの個数が多い場合は、より大きな値となり、重複するIDの個数が少ない場合は小さい値となる。
 すなわち、出力値が大きいほど、重複するIDの個数が多く、2つの集合には同じユーザIDが多く含まれることを示す。
 すなわち、この内積の値は、先に説明したジャッカード(Jaccard)係数と同様、2つの商品の購入ユーザの類似度を示す値となる。
 なお、この演算をセキュア計算と同等の安全性を維持して実行するためのプロトコル(計算方式)として、例えば、PSI-CA(Private set intersection cardinality)プロトコルが利用可能である。
 なお、このPSI-CAプロトコルの詳細については、例えば、文献[E.D.Cristofaro, P.Gasti and G.Tsudik,Fast and Private Computation of Cardinality of Set Intersection and Union,Cryptology and Network Security,pp.218-231,2012]に記載がある。
 PSI-CAプロトコルを適用した計算処理の詳細については、後述する。
  [4-c.計算量を削減したセキュア計算によるセキュアデータ間の関係性算出処理例について]
 次に、計算量を削減したセキュア計算によるセキュアデータ間の関係性算出処理の例について説明する。
 図11は、各々が商品購入履歴情報等のセキュアデータを保持する情報処理装置A,110と、情報処理装置B,120の構成の一部を示す図である。
 情報処理装置A,110は、入力部111、乱数生成部112、ハッシュ計算部113、算術演算部114、要素比較部115、データ送受信部116、出力部117を有する。
 情報処理装置B,120は、入力部121、乱数生成部122、ハッシュ計算部123、算術演算部124、ランダム置換部125、データ送受信部126、出力部127を有する。
 図12に示すフローチャートは、図11に示す装置を利用したセキュアデータ間の関係性算出処理のシーケンスを説明するフローチャートである。
 フローに示す処理は、例えば図10に示す2つの異なる情報処理装置の保持するセキュアデータである商品購入履歴データ中の設定値=1(ユーザの購入履歴あり)のユーザIDからなる集合C_iとS_jの内積算出処理である。
 前述したように、この内積の値が大きいほど、商品iと商品jの購入ユーザの相関(類似度)が高いと判定することができる。
 以下、図11に示すブロック図と、図12に示すフローチャートを参照して、内積算出シーケンスについて説明する。
 なお、図12に示すフローに従って実行する処理における各情報処理装置A,Bの入力値と、出力値を図13に示している。
  (ステップS101a,S101b)
 図12に示すフローのステップS101a、およびステップS101bの処理は、図11に示す情報処理装置A,110の入力部111、および情報処理装置B,120の入力部において実行する処理である。
 情報処理装置A,110の入力部111は、ステップS101aにおいて、情報処理装置A,110の記憶部に保持されたデータ、例えば、図10(1)に示すユーザ対応商品購入履歴データから生成される集合C_iを入力する。
 一方、情報処理装置B,120の入力部121は、ステップS101bにおいて、情報処理装置B,120の記憶部に保持されたデータ、例えば、図10(2)に示すユーザ対応商品購入履歴データから生成される集合S_jを入力する。
 各入力部111,121の入力データC_i,S_jは、以下の(式8a,式8b)に示すデータである。
Figure JPOXMLDOC01-appb-M000008
  (ステップS102)
 次のステップS102の処理は、先に説明したPSI-CAプロトコルを利用した内積算出処理である。
 この内積算出処理は、図11に示す情報処理装置A,110の乱数生成部112、ハッシュ計算部113、算術演算部114、ランダム置換部115、データ送受信部116、および情報処理装置B,120の乱数生成部122、ハッシュ計算部123、算術演算部124、ランダム置換部125、データ送受信部126を利用して実行される。
 このステップS102の処理は、例えば図10に示す2つの異なる情報処理装置の保持するセキュアデータである商品購入履歴データ中の設定値=1(ユーザの購入履歴あり)のユーザIDからなる集合C_iとS_jの内積算出処理である。
 すべてのi(1≦i≦k)について、上記(式8a,式8b)で示す集合C_iとS_jを入力値とする一括型PSI-CAを実行し、各iについて、以下の(式9)で示す内積を算出する。
Figure JPOXMLDOC01-appb-M000009
 n_(i,j)=|{c_1,・・・,c_(v_i)}∩{s_1,・・・,s_(w_j)}|
 ただし、(1≦j≦m)
 を出力する。
 このステップS102において実行する一括型PSI-CAについての詳細処理については後述する。
  (ステップS103a、S103b)
 このステップS103の処理は、出力部における結果出力処理である。
 図11に示す情報処理装置A,110の出力部117、および情報処理装置B,120の出力部127において実行される。
 図11に示す情報処理装置A,110の出力部117、および情報処理装置B,120の出力部127は、ステップS102において算出した内積、すなわち、集合C_iとS_jの内積である以下の(式10)を出力する。
Figure JPOXMLDOC01-appb-M000010
 なお、上記(式10)に示す内積の値は、例えば、情報処理装置A,110、および情報処理装置B,120のデータ処理部に出力される。
 各情報処理装置のデータ処理部は、入力した内積の値を用いて、各商品の購入ユーザの相関を判定することができる。
 前述したように、内積:n_(i,j)の値が大きいほど、商品iと商品jの購入ユーザの相関(類似度)が高いと判定することができる。
 なお、算出した内積と、ジャッカード(Jaccard)係数とは、先に説明した(式2a)と(式2)の関係にあり、算出した内積を用いてジャッカード(Jaccard)係数を算出することができる。
  [5.PSI-CA(Private set intersection cardinality)プロトコルを適用した一括型計算処理について]
 次に、図12に示すフローチャートのステップS102の処理として実行するPSI-CA(Private set intersection cardinality)プロトコルを適用した一括型計算処理について説明する。
 先にPSI-CAプロトコルの開示文献として文献[E.D.Cristofaro, P.Gasti and G.Tsudik,Fast and Private Computation of Cardinality of Set Intersection and Union,Cryptology and Network Security,pp.218-231,2012]を紹介した。
 しかし、この文献に記載されているのは、1つの集合と1つの集合同士で共通要素数を求めるプロトコルに過ぎない。
 これに対して、本開示の処理は、1つの集合と複数の集合同士で共通要素数を求める構成こととしている。
 例えば、本処理例において、
 集合:C_iは、企業1の提供する商品iを購入したユーザID(t=1~n)を要素とした集合である。
 また、集合:S_jは、企業2の提供する商品jを購入したユーザID(t=1~n)を要素とした集合である。
 本開示の処理では、
 企業1の提供する1つの商品iを購入したユーザID(t=1~n)を要素とした集合である1つの集合:C_iに対して、
 企業2の提供する商品jを購入したユーザID(t=1~n)を要素としたm個の集合:S_j(j=1~m)各々との相関を示すm個の内積を一括して算出することができる。
 具体的には、例えば図14に示すように、企業1の提供する1つの商品I_1を購入したユーザID(t=1~n)を要素とした集合である1つの集合:C_1に対して、
 企業2の提供する商品jを購入したユーザID(t=1~n)を要素としたm個の集合:S_j(j=1~m)各々との相関を示すm個の内積を一括して算出することができる。
 以下、このPSI-CAプロトコルを適用した一括型計算処理について説明する。
 図15、図16に示すフローチャートは、図12に示すフローのステップS102のPSI-CAプロトコルを適用した一括型計算処理の詳細シーケンスを説明するフローチャートである。
 フローチャートの説明の前に、以下の説明において用いるパラメータについて説明する。
 p,q:共通で入力される2つの素数(qは(p-1)を割り切る)。特に記載がない場合は、全ての演算はZ_p上で計算する。
 g:サイズがqである部分群の生成元。
 H:{0,1}→Z_p:ハッシュ関数。
 H':{0,1}→{0,1}κ:ハッシュ関数。κはセキュリティパラメータ。
 以下、このフローチャートの各ステップの処理の詳細について、順次、説明する。
 なお、以下において、各処理ステップの説明順は以下の設定とする。
 (説明1)図15に示す情報処理装置A,110の実行する処理(ステップS211~S213)
 (説明2)図15~図16に示す情報処理装置B,120の実行する処理(ステップS221~S225)
 (説明3)図16に示す情報処理装置A,110の実行する処理(ステップS214~S216)
 (説明4)図16に示す情報処理装置B,120の実行する処理(ステップS226)
 なお、図15、図16に示すフローに従って実行する処理における各情報処理装置A,Bの入力値と、出力値を図17に示している。
  [5-1.(説明1)情報処理装置A,110の実行する処理(ステップS211~S213)]
 まず、図15に示すフローチャートを参照して、情報処理装置A,110の実行する処理(ステップS211~S213)について、説明する。
  (ステップS211)
 図15に示すフローのステップS211の処理は、図11に示す情報処理装置A,110の入力部111において実行する処理である。
 情報処理装置A,110の入力部111は、ステップS211において、情報処理装置A,110の記憶部に保持されたデータ、例えば、図10(1)に示すユーザ対応商品購入履歴データから生成される集合:Cを入力する。
 集合Cは、以下の集合である。
 C={C_1,C_2,・・・,C_(v_i)}
 集合:Cの要素であるC_iは、情報処理装置A,110を持つ企業1の提供する1つの商品iを購入したユーザID(t=1~n)を要素とした1つの商品対応の集合であり、以下の(式11)に示す集合である。
Figure JPOXMLDOC01-appb-M000011
  (ステップS212)
 ステップS212の処理は、図11に示す情報処理装置A,110の乱数生成部112と、算術演算部114の実行する処理である。
 乱数生成部112は、乱数R_C、R'_Cを生成する。
 算術演算部114は、これらの乱数に基づいて、共有情報Xを計算する。
 これらの計算は、以下の(式12)に示す手順に従って実行される。
Figure JPOXMLDOC01-appb-M000012
  (ステップS213)
 ステップS213の処理は、図11に示す情報処理装置A,110のハッシュ計算部113と、算術演算部114の実行する処理である。
 ハッシュ計算部113は、入力値(C_t)のハッシュ値を求め、
 さらに算術演算部114は、ハッシュ計算部113において算出されたハッシュ値に対して、乱数R'_Cでべき乗する処理を行なう。
 具体的には、以下の(式13)に示す演算を実行する。
Figure JPOXMLDOC01-appb-M000013
 さらに、図11に示す情報処理装置A,110のデータ送受信部116は、以下の各データを情報処理装置B,120に送信する。
 共有情報:X=gRc
 集合:{a_1,・・・,a_v}、
  [5-2.(説明2)情報処理装置B,120の実行する処理(ステップS221~S225)]
 次に、図15、図16に示すフローチャートを参照して、情報処理装置B,120の実行する処理(ステップS221~S225)について、説明する。
  (ステップS221)
 図15に示すフローのステップS221の処理は、図11に示す情報処理装置B,120の入力部121において実行する処理である。
 情報処理装置B,120の入力部121は、ステップS221において、情報処理装置B,120の記憶部に保持されたデータ、例えば、図10(2)に示すユーザ対応商品購入履歴データから生成される集合:S_jを入力する。
 集合:S_jは、情報処理装置B,120を持つ企業2の提供する1つの商品jを購入したユーザID(t=1~n)を要素とした1つの商品対応の集合であり、以下の(式14)に示す集合である。
Figure JPOXMLDOC01-appb-M000014
  (ステップS222)
 図15に示すフローのステップS222の処理は、図11に示す情報処理装置B,120のランダム置換部125と、ハッシュ計算部123において実行する処理である。
 情報処理装置B,120のランダム置換部125は、ステップS222において、ステップS221における入力値:S_jをランダム置換し、ランダム置換データをハッシュ計算部123に出力する。
 ハッシュ計算部123は、ランダム置換部125において生成された入力値:S_jのランダム置換データのハッシュ値を算出する。
 具体的な計算は、以下の(式15a)(式15b)に従って実行される。
Figure JPOXMLDOC01-appb-M000015
 上記式中、(式15a)が、ランダム置換部125による入力値:S_jのランダム置換処理である。
 (式15b)が、ハッシュ計算部123による、ランダム置換データのハッシュ値算出処理である。
  (ステップS223)
 ステップS223の処理は、図11に示す情報処理装置B,120のデータ送受信部126と、乱数生成部122と、算術演算部124において実行する処理である。
 データ送受信部126は、情報処理装置Aにおける処理ステップであるステップS212~S213において生成された以下のデータを受信する。
 共有情報:X=gRc
 集合:{a_1,・・・,a_v}、
 次に、乱数生成部122は、乱数R_S、R'_Sを生成し、算術演算部124が共有情報:Y=gRsを計算する。
 これらの計算は、以下に示す(式16)に従って実行される。
Figure JPOXMLDOC01-appb-M000016
  (ステップS224)
 ステップS224の処理は、図11に示す情報処理装置B,120の算術演算部124と、ランダム置換部125において実行する処理である。
 算術演算部124は、情報処理装置A,110からの入力データ、
 {a_1,・・・,a_v}を、
 乱数R'_Sでべき乗し、このべき乗データをランダム置換部125に出力する。
 ランダム置換部125は、入力したべき乗データのランダム置換処理を実行する。
 具体的には、以下に示す(式17a)、(式17b)に従った処理を実行する。
Figure JPOXMLDOC01-appb-M000017
 上記式中、(式17a)が、算術演算部124における入力データ{a_1,・・・,a_v}に対する乱数R'_Sによるべき乗処理である。
 (式17b)が、ランダム置換部125によるべき乗データのランダム置換処理である。
  (ステップS225)
 ステップS225の処理は、図11に示す情報処理装置B,120の算術演算部124と、ハッシュ計算部123、データ送受信部126において実行する処理である。
 算術演算部124は、ステップS222で生成した入力値のランダム置換後のハッシュ値に対して、さらに、乱数R'_Sでべき乗し、
 さらに、情報処理装置A,110からの入力値である、
 共有情報:X=gRc
 上記Xを乗算し、乗算値をハッシユ計算部123に出力する。
 ハッシュ計算部123が、この乗算値に対するハッシュ値を算出する。
 具体的には、以下の(式18a)、(式18b)に従った計算を実行する。
Figure JPOXMLDOC01-appb-M000018
 上記式中、(式18a)が、算術演算部124における入力値のランダム置換後のハッシュ値に対する乱数R'_Sによるべき乗処理と、共有情報:X=gRcの乗算処理である。
 (式18b)が、ハッシュ計算部123による、乗算値に対するハッシュ値算出処理である。
 情報処理装置B,120のデータ送受信部126は、ステップS223で生成した、
 共有情報:Y=gRs
 さらに、ステップS224,S225において生成したデータを情報処理装置A,110に送信する。
 情報処理装置B,120から、情報処理装置A,110に送信されるデータは、以下の(式19)に示す各データである。
Figure JPOXMLDOC01-appb-M000019
  [5-3.(説明3)情報処理装置A,110の実行する処理(ステップS214~S216)]
 次に、図16に示すフローチャートを参照して、情報処理装置A,110の実行する処理(ステップS214~S216)について、説明する。
 上述した処理中、情報処理装置A,110の実行するステップS212~S213の処理、および、情報処理装置B,120の実行するステップS222~S225の処理は、各情報処理装置A,Bの保持するセキュアデータの変換処理として行われる処理である。
 具体的にはベクトル構成要素の暗号化、ハッシュ算出、ランダム置換等の処理により、セキュアデータを変換して、漏えいさせないための処理である。
 以下に説明するステップS241~S215の処理は、これらのセキュアデータを利用して実行されるベクトル間の相関判定処理となる。
  (ステップS214)
 ステップS214の処理は、情報処理装置A,110のデータ送受信部116と、算術演算部114、ハッシュ計算部113の実行する処理である。
 情報処理装置A,110のデータ送受信部116は、情報処理装置B,120から、共有情報:Y=gRs等、上記の(式19)に示す各データを受信する。
 情報処理装置A,110の算術演算部114は、情報処理装置B,120からの入力データに対して、乱数R'_cの逆数でべき乗し、さらに、YRcを乗算し、この計算結果をハッシュ計算部113に出力する。
 ハッシュ計算部113は、算術演算部114からの入力に対するハッシュ値を算出する。
 具体的には、以下の(式20a)、(式20b)に従った計算を実行する。
Figure JPOXMLDOC01-appb-M000020
 上記式中、(式20a)が、算術演算部114における計算処理であり、(式20b)が、ハッシュ計算部113によるハッシュ値算出処理である。
  (ステップS215)
 ステップS215の処理は、情報処理装置A,110の要素比較部115の実行する処理である。
 情報処理装置A,110の要素比較部115は、情報処理装置B,120を持つ企業2の提供するm個の商品j(j=1~m)の各々について、情報処理装置A,110を持つ企業1の提供する1つの商品i(i=1~k)との共通要素数を計算する。
 具体的には、例えば、企業2の提供するm個の商品jと、企業1の提供する1つの商品iを共通に購入したユーザ数(要素数)を計算する。
 この共通要素数計算処理は、以下の(式21)に従った処理である。
Figure JPOXMLDOC01-appb-M000021
 上記の(式21)に従った共通要素数の算出を実行する。
 上記(式21)に従った要素数比較は、情報処理装置B,120を持つ企業2の提供するm個の商品j(j=1~m)の各々について実行される。
 この処理により、情報処理装置A,110を持つ企業1の提供する1つの商品iに対する、企業2の提供するm個の商品j(j=1~m)の各々について、m個の共通要素数データ、すなわち、
 n_j
 ただし、(j=1~m)
 このm個の共通要素数データが連続して得られることになる。
 情報処理装置A,110のデータ送受信部116は、このm個の共通要素数データ:n_jを情報処理装置B,120に送信する。
  (ステップS216)
 ステップS216の処理は、情報処理装置A,110の出力部117の実行する処理である。
 情報処理装置A,110の出力部117は、ステップS215で算出したm個の共通要素数データ:n_jを情報処理装置A,110のデータ処理部に出力する。
 情報処理装置A,110のデータ処理部は、入力したm個の共通要素数データ:n_jを用いて、各商品の購入ユーザの相関を判定することができる。
 すなわち、情報処理装置B,120を持つ企業2の提供するm個の商品j(j=1~m)の各々について、情報処理装置A,110を持つ企業1の1つの提供商品iも購入した共通購入ユーザ数を確認することが可能となる。この共通ユーザ数が多いほど、商品購入ユーザ相関が高いと判定することができる。
 なお、上記の(式21)に従って算出される共通要素数は、先に説明した(式2a)の購入ベクトル間の内積に等しい、
 また、この内積と、ジャッカード(Jaccard)係数とは、先に説明した(式2a)と(式2)の関係にあり、算出した内積を用いてジャッカード(Jaccard)係数を算出することができる。
  [5-4.(説明4)図16に示す情報処理装置B,120の実行する処理(ステップS226)]
 最後に、図16に示すフローチャートを参照して、情報処理装置B,120の実行する処理(ステップS226)について、説明する。
  (ステップS226)
 ステップS226は、情報処理装置B,120のデータ送受信部126と出力部127の実行する処理である。
 情報処理装置B,120のデータ送受信部126は、情報処理装置A,110の実行ステップS215で算出されたm個の共通要素数データ:n_jを情報処理装置A,110から受信し、出力部127に提供する。
 情報処理装置B,120の出力部127は、m個の共通要素数データ:n_jを情報処理装置B,120のデータ処理部に出力する。
 情報処理装置B,120のデータ処理部は、入力したm個の共通要素数データ:n_jを用いて、各商品の購入ユーザの相関を判定することができる。
 すなわち、情報処理装置B,120を持つ企業2の提供するm個の商品j(j=1~m)の各々について、情報処理装置A,110を持つ企業1の1つの提供商品iも購入した共通購入ユーザ数を認することが可能となる。この共通ユーザ数が多いほど、商品購入ユーザ相関が高いと判定することができる。
 このように、本開示の処理では、図15、図16を参照して説明したフローチャートに従った1回の処理シーケンスに従った処理によって、情報処理装置A,110を持つ企業1の提供する1つの商品iに対する、企業2の提供するm個の商品j(j=1~m)の各々について、m個の共通要素数データ、すなわち、
 n_j
 ただし、(j=1~m)
 このm個の共通要素数データを連続して取得することが可能となる。
 図15、図16を参照して説明した処理をまとめると、以下のようになる。
 情報処理装置A,110は、セキュアデータを要素とするk本のベクトルを有する。
 一方、情報処理装置B,120は、セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する、
 情報処理装置A,110は、情報処理装置B,120から、m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信する。
 情報処理装置A,110のデータ処理部は、情報処理装置A,110の保持するk本のベクトルから選択された1つのベクトルXと、情報処理装置B,120から受信したベクトルYから、特定の共通値、すなわち(1)を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行する。
 この処理において、情報処理装置A,110のデータ処理部は、1つのベクトルXに対して、m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する。
 この処理によって、情報処理装置A,110を持つ企業1の提供する1つの商品iに対する、企業2の提供するm個の商品j(j=1~m)の各々について、m個の共通要素数データ、すなわち、
 n_j
 ただし、(j=1~m)
 このm個の共通要素数データを連続して取得することが可能となる。
  [6.情報処理装置のハードウェア構成例について]
 最後に、上述した実施例に従った処理を実行する情報処理装置のハードウェア構成例について、図18を参照して説明する。
 図18は、情報処理装置のハードウェア構成例を示す図である。
 CPU(Central Processing Unit)401は、ROM(Read Only Memory)402、または記憶部408に記憶されているプログラムに従って各種の処理を実行する制御部やデータ処理部として機能する。例えば、上述した実施例において説明したシーケンスに従った処理を実行する。RAM(Random Access Memory)403には、CPU401が実行するプログラムやデータなどが記憶される。これらのCPU401、ROM402、およびRAM403は、バス404により相互に接続されている。
 CPU401はバス404を介して入出力インタフェース405に接続され、入出力インタフェース405には、各種スイッチ、キーボード、マウス、マイクロホンなどよりなる入力部406、ディスプレイ、スピーカなどよりなる出力部407が接続されている。CPU401は、入力部406から入力される指令に対応して各種の処理を実行し、処理結果を例えば出力部407に出力する。
 入出力インタフェース405に接続されている記憶部408は、例えばハードディスク等からなり、CPU401が実行するプログラムや各種のデータを記憶する。通信部409は、インターネットやローカルエリアネットワークなどのネットワークを介したデータ通信の送受信部として機能し、外部の装置と通信する。
 入出力インタフェース405に接続されているドライブ410は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア411を駆動し、データの記録あるいは読み取りを実行する。
  [7.本開示の構成のまとめ]
 以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
 なお、本明細書において開示した技術は、以下のような構成をとることができる。
 (1) k本のベクトルから選択された1つのベクトルXと、
 m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
 前記データ処理部は、
 前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
 前記データ処理部は、
 1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理装置。
 (2) 前記ベクトルXは、標本対応の要素の値が1または0の2値データからなるn要素のk本のベクトルから選択された1つのベクトルであり、
 前記ベクトルYは、標本対応の要素の値が1または0の2値データからなるn要素のm本のベクトルから選択された1つのベクトルであり、
 前記データ処理部は、
 前記ベクトルXと前記ベクトルYの要素間の内積算出処理として、
 前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
 前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を抽出する処理を実行し、
 前記データ処理部は、
 1つのベクトルXに対して、前記m本のベクトルから選択される複数のベクトルY各々について、値が1となる共通する要素対応の標本識別子を連続的に抽出する処理を実行する(1)に記載の情報処理装置。
 (3) 前記データ処理部は、
 前記ベクトルX、または前記ベクトルYのいずれか一方のベクトル情報を異なる情報処理装置から暗号化データとして受信してデータ処理を実行する(1)または(2)に記載の情報処理装置。
 (4) 前記データ処理部は、
 前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子の変換データを用いた計算処理を実行する(1)~(3)いずれかに記載の情報処理装置。
 (5) 前記データ処理部は、
 前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子のランダム置換データを用いた計算処理を実行する(1)~(4)いずれかに記載の情報処理装置。
 (6) 前記データ処理部は、
 前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
 前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を算出し、算出数を、前記ベクトルXと前記ベクトルYの要素間の内積値とし、該内積値の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する(1)~(5)いずれかに記載の情報処理装置。
 (7) 前記データ処理部は、
 前記内積値を適用して、ジャッカード(Jaccard)係数を算出し、ジャッカード(Jaccard)係数の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する(6)に記載の情報処理装置。
 (8) セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、
 セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムであり、
 前記第1の情報処理装置は、
 前記第2の情報処理装置から、前記m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、
 前記第1の情報処理装置のデータ処理部は、
 前記第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
 前記データ処理部は、
 1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理システム。
 (9) 前記ベクトルXは、標本対応の要素の値が1または0の2値データからなるn要素のk本のベクトルから選択された1つのベクトルであり、
 前記ベクトルYは、標本対応の要素の値が1または0の2値データからなるn要素のm本のベクトルから選択された1つのベクトルであり、
 前記データ処理部は、
 前記ベクトルXと前記ベクトルYの要素間の内積算出処理として、
 前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
 前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を抽出する処理を実行し、
 前記データ処理部は、
 1つのベクトルXに対して、前記m本のベクトルから選択される複数のベクトルY各々について、値が1となる共通する要素対応の標本識別子を連続的に抽出する処理を実行する(8)に記載の情報処理システム。
 (10) 前記データ処理部は、
 前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子の変換データを用いた計算処理を実行する(8)または(9)に記載の情報処理システム。
 (11) 前記データ処理部は、
 前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子のランダム置換データを用いた計算処理を実行する(8)~(10)いずれかに記載の情報処理システム。
 (12) 前記データ処理部は、
 前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
 前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を算出し、算出数を、前記ベクトルXと前記ベクトルYの要素間の内積値とし、該内積値の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する)8)~(11)いずれかに記載の情報処理システム。
 (13) 前記データ処理部は、
 前記内積値を適用して、ジャッカード(Jaccard)係数を算出し、ジャッカード(Jaccard)係数の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する(12)に記載の情報処理システム。
 (14) 情報処理装置において実行する情報処理方法であり、
 前記情報処理装置は、
 k本のベクトルから選択された1つのベクトルXと、
 m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
 前記データ処理部は、
 前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
 前記データ処理部は、
 1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法。
 (15) セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、
 セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
 前記第1の情報処理装置は、
 前記第2の情報処理装置から、前記m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、
 前記第1の情報処理装置のデータ処理部は、
 前記第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
 前記データ処理部は、
 1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法。
 (16) 情報処理装置において情報処理を実行させるプログラムであり、
 前記情報処理装置は、
 k本のベクトルから選択された1つのベクトルXと、
 m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
 前記プログラムは、前記データ処理部に、
 前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行させ、
 さらに、
 1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行させるプログラム。
 また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
 なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
 上述したように、本開示の一実施例の構成によれば、高速かつ効率的なベクトル間の相関性判定処理が実現される。
 具体的には、セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムであり、第1の情報処理装置は、第2の情報処理装置から、m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、第1の情報処理装置のデータ処理部は、第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する。
 本構成により、高速かつ効率的なベクトル間の相関性判定処理が実現される。
 110 情報処理装置A
 111 入力部
 112 乱数生成部
 113 ハッシュ計算部
 114 算術演算部
 115 要素比較部
 116 データ送受信
 117 出力部
 120 情報処理装置B
 121 入力部
 122 乱数生成部
 123 ハッシュ計算部
 124 算術演算部
 125 ランダム置換部
 126 データ送受信部
 127 出力部
 401 CPU
 402 ROM
 403 RAM
 404 バス
 405 入出力インタフェース
 406 入力部
 407 出力部
 408 記憶部
 409 通信部
 410 ドライブ
 411 リムーバブルメディア

Claims (16)

  1.  k本のベクトルから選択された1つのベクトルXと、
     m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
     前記データ処理部は、
     前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
     前記データ処理部は、
     1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理装置。
  2.  前記ベクトルXは、標本対応の要素の値が1または0の2値データからなるn要素のk本のベクトルから選択された1つのベクトルであり、
     前記ベクトルYは、標本対応の要素の値が1または0の2値データからなるn要素のm本のベクトルから選択された1つのベクトルであり、
     前記データ処理部は、
     前記ベクトルXと前記ベクトルYの要素間の内積算出処理として、
     前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
     前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を抽出する処理を実行し、
     前記データ処理部は、
     1つのベクトルXに対して、前記m本のベクトルから選択される複数のベクトルY各々について、値が1となる共通する要素対応の標本識別子を連続的に抽出する処理を実行する請求項1に記載の情報処理装置。
  3.  前記データ処理部は、
     前記ベクトルX、または前記ベクトルYのいずれか一方のベクトル情報を異なる情報処理装置から暗号化データとして受信してデータ処理を実行する請求項1に記載の情報処理装置。
  4.  前記データ処理部は、
     前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子の変換データを用いた計算処理を実行する請求項1に記載の情報処理装置。
  5.  前記データ処理部は、
     前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子のランダム置換データを用いた計算処理を実行する請求項1に記載の情報処理装置。
  6.  前記データ処理部は、
     前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
     前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を算出し、算出数を、前記ベクトルXと前記ベクトルYの要素間の内積値とし、該内積値の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する請求項1に記載の情報処理装置。
  7.  前記データ処理部は、
     前記内積値を適用して、ジャッカード(Jaccard)係数を算出し、ジャッカード(Jaccard)係数の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する請求項6に記載の情報処理装置。
  8.  セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、
     セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムであり、
     前記第1の情報処理装置は、
     前記第2の情報処理装置から、前記m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、
     前記第1の情報処理装置のデータ処理部は、
     前記第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
     前記データ処理部は、
     1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理システム。
  9.  前記ベクトルXは、標本対応の要素の値が1または0の2値データからなるn要素のk本のベクトルから選択された1つのベクトルであり、
     前記ベクトルYは、標本対応の要素の値が1または0の2値データからなるn要素のm本のベクトルから選択された1つのベクトルであり、
     前記データ処理部は、
     前記ベクトルXと前記ベクトルYの要素間の内積算出処理として、
     前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
     前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を抽出する処理を実行し、
     前記データ処理部は、
     1つのベクトルXに対して、前記m本のベクトルから選択される複数のベクトルY各々について、値が1となる共通する要素対応の標本識別子を連続的に抽出する処理を実行する請求項8に記載の情報処理システム。
  10.  前記データ処理部は、
     前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子の変換データを用いた計算処理を実行する請求項8に記載の情報処理システム。
  11.  前記データ処理部は、
     前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子のランダム置換データを用いた計算処理を実行する請求項8に記載の情報処理システム。
  12.  前記データ処理部は、
     前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
     前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を算出し、算出数を、前記ベクトルXと前記ベクトルYの要素間の内積値とし、該内積値の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する請求項8に記載の情報処理システム。
  13.  前記データ処理部は、
     前記内積値を適用して、ジャッカード(Jaccard)係数を算出し、ジャッカード(Jaccard)係数の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する請求項12に記載の情報処理システム。
  14.  情報処理装置において実行する情報処理方法であり、
     前記情報処理装置は、
     k本のベクトルから選択された1つのベクトルXと、
     m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
     前記データ処理部は、
     前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
     前記データ処理部は、
     1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法。
  15.  セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、
     セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
     前記第1の情報処理装置は、
     前記第2の情報処理装置から、前記m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、
     前記第1の情報処理装置のデータ処理部は、
     前記第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
     前記データ処理部は、
     1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法。
  16.  情報処理装置において情報処理を実行させるプログラムであり、
     前記情報処理装置は、
     k本のベクトルから選択された1つのベクトルXと、
     m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
     前記プログラムは、前記データ処理部に、
     前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行させ、
     さらに、
     1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行させるプログラム。
PCT/JP2016/085116 2016-01-12 2016-11-28 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム WO2017122437A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP16885040.2A EP3404643A4 (en) 2016-01-12 2016-11-28 INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING PROCESS AND PROGRAM
US16/065,959 US10650083B2 (en) 2016-01-12 2016-11-28 Information processing device, information processing system, and information processing method to determine correlation of data
JP2017561533A JPWO2017122437A1 (ja) 2016-01-12 2016-11-28 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016003803 2016-01-12
JP2016-003803 2016-01-12

Publications (1)

Publication Number Publication Date
WO2017122437A1 true WO2017122437A1 (ja) 2017-07-20

Family

ID=59311178

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/085116 WO2017122437A1 (ja) 2016-01-12 2016-11-28 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム

Country Status (4)

Country Link
US (1) US10650083B2 (ja)
EP (1) EP3404643A4 (ja)
JP (1) JPWO2017122437A1 (ja)
WO (1) WO2017122437A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11580253B1 (en) * 2017-02-23 2023-02-14 Amdocs Development Limited System, method, and computer program for centralized consent management
CN110399741A (zh) * 2019-07-29 2019-11-01 深圳前海微众银行股份有限公司 数据对齐方法、设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007501975A (ja) * 2003-08-08 2007-02-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システム及びその方法
JP2010092432A (ja) * 2008-10-10 2010-04-22 Nec Corp データ類似度計算システム、データ類似度計算方法およびデータ類似度計算プログラム
WO2014109388A1 (ja) * 2013-01-11 2014-07-17 日本電気株式会社 テキストマイニング装置、テキストマイニングシステム、テキストマイニング方法及び記録媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1815637B1 (en) 2004-11-16 2016-04-20 Koninklijke Philips N.V. Securely computing a similarity measure
US8862534B1 (en) 2012-12-07 2014-10-14 Robust Links, LLC Software service infrastructure indexing user demographics, interests and expertise
JP2014206696A (ja) 2013-04-15 2014-10-30 株式会社インテック データ秘匿型内積計算システム、方法、及びプログラム
JP2015108807A (ja) 2013-10-23 2015-06-11 株式会社インテック データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法
US9275237B2 (en) * 2013-12-09 2016-03-01 Palo Alto Research Center Incorporated Method and apparatus for privacy and trust enhancing sharing of data for collaborative analytics
JP2015194959A (ja) * 2014-03-31 2015-11-05 ソニー株式会社 情報処理装置、情報処理方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007501975A (ja) * 2003-08-08 2007-02-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システム及びその方法
JP2010092432A (ja) * 2008-10-10 2010-04-22 Nec Corp データ類似度計算システム、データ類似度計算方法およびデータ類似度計算プログラム
WO2014109388A1 (ja) * 2013-01-11 2014-07-17 日本電気株式会社 テキストマイニング装置、テキストマイニングシステム、テキストマイニング方法及び記録媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ROLF EGERT ET AL.: "Privately Computing Set- Union and Set-Intersection Cardinality via Bloom Filters", ACISP 2015, 25 June 2015 (2015-06-25), pages 1 - 18, XP009507467, Retrieved from the Internet <URL:https://www.semanticscholar.org/paper/Privately-Set-Union-and-Set-Intersection-Egert-Fischlin/c6d5c51b8074c94335b71210b8f22d5a03a133cl><DOI:10.1007/978-3-319-19962-7_24> [retrieved on 20161226] *
See also references of EP3404643A4 *

Also Published As

Publication number Publication date
US10650083B2 (en) 2020-05-12
EP3404643A1 (en) 2018-11-21
US20190004999A1 (en) 2019-01-03
EP3404643A4 (en) 2019-01-16
JPWO2017122437A1 (ja) 2018-11-08

Similar Documents

Publication Publication Date Title
JP5957918B2 (ja) 暗号化技術を用いたツリーに基づく分類のための方法及び装置
Frey et al. Collaborative filtering on the blockchain: a secure recommender system for e-commerce
US20130097417A1 (en) Secure private computation services
US11088834B2 (en) System for privacy-preserving monetization of big data and method for using the same
Vu Privacy-preserving Naive Bayes classification in semi-fully distributed data model
US20200082112A1 (en) Systems and methods for secure prediction using an encrypted query executed based on encrypted data
Yang et al. FCMF: Federated collective matrix factorization for heterogeneous collaborative filtering
US20170310643A1 (en) Gradients over distributed datasets
US20170039487A1 (en) Support vector machine learning system and support vector machine learning method
JP2007501975A (ja) データ処理システム及びその方法
Bilogrevic et al. What’s the gist? privacy-preserving aggregation of user profiles
WO2022247620A1 (zh) 保护隐私的确定业务数据特征有效值的方法及装置
CN111709051A (zh) 数据处理方法、装置、系统、计算机存储介质及电子设备
Shao et al. Multiple color image encryption and authentication based on phase retrieval and partial decryption in quaternion gyrator domain
Vu et al. An efficient and practical approach for privacy-preserving Naive Bayes classification
WO2017122437A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
Helsloot et al. Badass: Preserving privacy in behavioural advertising with applied secret sharing
Yao et al. Color image encryption based on discrete trinion Fourier transform and random-multiresolution singular value decomposition
WO2015186574A1 (ja) 情報システム、統合装置、第一装置、情報処理方法、および記録媒体
Wang et al. Compressive sensing based secure multiparty privacy preserving framework for collaborative data-mining and signal processing
Abid et al. A Critical Survey On Privacy Prevelling In Collaborative Filtring Recomender System: Challenges, State-Of-The-Art Methods And Future Directions
Piotrowska et al. Some remarks and ideas about monetization of sensitive data
CN111444527B (zh) 不同应用程序之间数据的相关系数确定方法、装置及介质
Shieh et al. Recommendation in the end-to-end encrypted domain
EP3264289A1 (en) System and method for searching over encrypted data using a boolean search query

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017561533

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE