WO2023008045A1 - 情報処理システム及び情報処理方法 - Google Patents

情報処理システム及び情報処理方法 Download PDF

Info

Publication number
WO2023008045A1
WO2023008045A1 PCT/JP2022/025580 JP2022025580W WO2023008045A1 WO 2023008045 A1 WO2023008045 A1 WO 2023008045A1 JP 2022025580 W JP2022025580 W JP 2022025580W WO 2023008045 A1 WO2023008045 A1 WO 2023008045A1
Authority
WO
WIPO (PCT)
Prior art keywords
terminal
vector
information processing
vectors
data
Prior art date
Application number
PCT/JP2022/025580
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 株式会社日立製作所
Publication of WO2023008045A1 publication Critical patent/WO2023008045A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system

Definitions

  • the present invention relates to an information processing system and an information processing method.
  • an encryption method called homomorphic public key cryptography is used to encrypt the data held by one party and send it to the other party, and the other party encrypts each data held by itself.
  • the device of the first organization performs a first transformation for confidentiality on a first data sequence to be kept confidential within the organization, and transforms the transformed first data sequence.
  • the device of the second organization performs a second transformation for concealment on the second data string to be kept confidential within the organization, and the transformed second data string
  • the data string is output to a device of a third organization, and the device of the third organization calculates the inner product of the transformed first data sequence and the transformed second data sequence, and calculates the inner product as at least and back to the device of the second organization, the device of the first organization transmitting information about the first deformation it has made to the device of the second organization, and the device of the second organization transmitting the information to the device of the second organization a first data sequence and a second data sequence based on the information about the second deformation performed by the device, the information received from the device of the first organization, and the inner product received from the device of the third organization; Find the dot product with.” (see abstract).
  • Patent Document 1 The technology described in Patent Document 1 is considered to be highly secure as it prevents one party from guessing the data of the other party. , is difficult to process in realistic time and cost.
  • a third party must be intervened for the hidden inner product calculation, which also increases costs such as increased communication traffic and communication time.
  • An information processing system includes a first terminal and a second terminal, the first terminal holding a first vector, a dummy vector, and a private key, the second terminal holding a plurality of vectors, and the The first terminal and the second terminal perform a narrowing process, and in the narrowing process, the first terminal determines a region based on the dummy vector and including the first vector, and indicates the determined region.
  • the second terminal identifies a vector included in the region from among the plurality of vectors, and the first terminal and the second terminal perform similar part extraction processing and in the similar part extraction process, the first terminal encrypts the first vector using the secret key, and the first terminal and the second terminal encrypt the first vector out of the identified vectors.
  • a vector whose similarity to the vector is higher than a predetermined first threshold is extracted without decoding the first vector.
  • the risk of information leakage to others regarding dissimilar data is reduced, while reducing the amount of computation and amount of communication. can extract similar parts.
  • FIG. 1 is a block diagram showing an example of a concealed similar part extraction system in Example 1.
  • FIG. 2 is a block diagram showing a configuration example of a user A terminal in embodiment 1;
  • FIG. 2 is a block diagram showing a configuration example of a user B terminal in embodiment 1;
  • FIG. 10 is an explanatory diagram showing an outline of narrowing down data held by the user B terminal, which is similar to data held by the user A terminal in the first embodiment;
  • FIG. 11 is a sequence diagram showing an example of a concealed similar data extraction process according to the first embodiment;
  • FIG. 10 is a sequence diagram showing an example of a similar part extraction protocol in Example 1;
  • FIG. 11 is a block diagram showing a configuration example of a multi-user concealed similarity partial calculation system in Example 2;
  • FIG. 12 is a sequence diagram showing an example of a concealed similar data extraction process according to the second embodiment;
  • FIG. 1 is a block diagram showing an example of a concealed similar part extraction system.
  • a concealed similar part extraction system is a system in which one of two parties compares its own data with the other's data while encrypting it, and extracts a similar part.
  • the confidential similar part extraction system includes a user A terminal 100 (an example of a first terminal) and a user B terminal 200 (an example of a second terminal).
  • the user A terminal 100 and the user B terminal 200 are connected to each other via a network 1000 such as the Internet and are in a communicable state.
  • FIG. 2 is a block diagram showing a configuration example of the user A terminal 100.
  • the user A terminal 100 is configured by a computer having a CPU 110, an auxiliary storage device 120, an input device 101, an output device 102, a communication device 103, and a memory 104, for example.
  • the CPU 110 includes a processor and executes programs stored in the memory 104 .
  • the memory 104 includes ROM (Read Only Memory), which is a non-volatile storage element, and RAM (Random Access Memory), which is a volatile storage element.
  • the ROM stores immutable programs (for example, BIOS (Basic Input/Output System)) and the like.
  • BIOS Basic Input/Output System
  • RAM is a high-speed and volatile storage device such as DRAM (Dynamic Random Access Memory), and temporarily stores programs executed by CPU 110 and data used during program execution.
  • the auxiliary storage device 120 is, for example, a magnetic storage device (HDD (Hard Disk Drive)), a flash memory (SSD (Solid State Drive)), or other large-capacity, non-volatile storage device. Stores data used when running That is, the program is read from auxiliary storage device 120, loaded into memory 104, and executed by CPU 110.
  • HDD Hard Disk Drive
  • SSD Solid State Drive
  • the information used by the concealed similar part extraction system may be expressed in any data structure without depending on the data structure.
  • a data structure suitably selected from a table, list, database, or queue can store the information.
  • the input device 101 is a device such as a keyboard or mouse that receives input from an operator.
  • the output device 102 is a device, such as a display device or a printer, that outputs results of program execution in a format that can be visually recognized by the operator.
  • a communication device 103 is a network interface device that controls communication with other devices according to a predetermined protocol.
  • a program executed by the CPU 110 is transmitted from another information processing device having a non-temporary storage device to the user A via a removable medium (CD-ROM, flash memory, etc.), which is a non-temporary storage medium, or the network 1000. It may be provided to terminal 100 and stored in non-volatile auxiliary storage device 120, which is a non-temporary storage medium. Therefore, the user A terminal 100 preferably has an interface for reading data from removable media. This also applies to user B's terminal 200 .
  • User A terminal 100 is a computer system configured on one physical computer or on a plurality of logically or physically configured computers, and operates on the same computer with separate threads. Alternatively, it may operate on a virtual computer built on a plurality of physical computer resources. This also applies to user B's terminal 200 .
  • the CPU 110 includes, for example, an encryption processing unit 111, a decryption processing unit 112, a dummy data generation unit 113, and a similar part extraction unit 114.
  • the encryption processing unit 111 encrypts the data 131 that the user A has.
  • the decryption processing unit 112 decrypts the distance value between the user A's data and the user B's data calculated while the user A's data and the user B's data are encrypted.
  • the dummy data generation unit 113 generates dummy data used when narrowing down the data held by the user B terminal 200 .
  • the CPU 110 performs processing for displaying data on the output device 102 , reads data stored in the auxiliary storage device 120 , and transmits the read data to the user B terminal 200 via the communication device 103 .
  • the similar part extraction unit 114 extracts data similar to the data included in the data 131 while the data is encrypted from the data held by the user B terminal 200 .
  • the CPU 110 operates according to the encryption processing program loaded into the memory 104 to function as the encryption processing unit 111, and operates according to the decryption processing program loaded into the memory 104 to function as the decryption processing unit. 112.
  • the relationship between programs and functional units is the same for other functional units included in the CPU 110 .
  • the relationship between the programs and the functional units is the same for the functional units (described later) included in the CPU 210 (described later) of the user B terminal 200 .
  • Some or all of the functions of the functional units included in the CPU 110 and the CPU 210 may be realized by hardware such as ASIC (Application Specific Integrated Circuit) and FPGA (Field-Programmable Gate Array).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • the auxiliary storage device 120 includes a data storage area 130 and an encryption/decryption key storage area 140.
  • the data storage area 130 stores data 131 held by the user A and the like.
  • the encryption/decryption key storage area 140 stores an encryption key 141 and a decryption key 142 used for processing by the encryption processing unit 111 and the decryption processing unit 112 .
  • FIG. 3 is a block diagram showing a configuration example of the user B terminal 200.
  • the user B terminal 200 is configured by a computer having a CPU 210, an auxiliary storage device 220, an input device 201, an output device 202, a communication device 203, and a memory 204, for example.
  • the CPU 210, the auxiliary storage device 220, the input device 201, the output device 202, the communication device 203, and the memory 204 are described as hardware. Since it is the same as the description of the hardware of the memory 104, it will be omitted.
  • the CPU 210 includes a distance value calculator 211 , a data extractor 212 , and a similar part extractor 213 .
  • Auxiliary storage device 120 has a data storage area 230 for storing data 231 . It is assumed that the data 131 possessed by the user A terminal 100 and the data 231 possessed by the user B terminal 200 are converted into vector data representing their features. If the data is a document, there is a method of converting the data into vector data by determining the value of the element according to the frequency of words appearing in the document using a vector in which each element represents a word category. Further, when the data is image data, there is a method of converting the data into vector data by regarding the final value in the convolutional neural network as a hash value and associating it as a bit vector.
  • Distance value calculation section 211 calculates the distance between data for narrowing down transmitted from user A terminal 100 and data 231 possessed by user B terminal 200, and compares the distance with the threshold value transmitted from user A. Data closer than the threshold is extracted.
  • the distance value calculation unit 211 executes a protocol with the user A terminal 100 to calculate the distance while it is encrypted, and transmits the encrypted distance information to the user A terminal 100.
  • the data extraction unit 212 extracts data included in the area designated by the user A terminal 100 from the data 231 .
  • the similar part extraction unit 213 executes processing for extracting data similar to the data contained in the data 131 while the data is encrypted.
  • FIG. 4 is an explanatory diagram showing an overview of narrowing down data 231 held by user B's terminal 200 that is similar to data 131 held by user A's terminal 100 .
  • FIG. 4 shows an example in which the data are two-dimensional vectors and the Euclidean distance is used as the distance. In general, even for distances other than high-dimensional vectors and Euclidean distances, if distances can be represented by inner products, narrowing down can be executed by a method similar to the method described below.
  • FIG. 5 is a sequence diagram showing an example of confidential similar data extraction processing.
  • the user A terminal 100 generates dummy data a' unrelated to the target data a (included in the data 131), and calculates the distance r from the target data a.
  • vectors b, c, d, e, and f in FIG. 4 are all data held by user B terminal 200 .
  • the dummy data generation unit 113 of the user A terminal 100 generates dummy data a′, the generated dummy data a′, the inside of a circle whose distance from a′ is r+ ⁇ and the distance from a′ is r Information indicating a ring region 408 that is a common region with the outside of the circle of ⁇ ′ is transmitted to the user B terminal 200 (S501).
  • the dummy data generation unit 113 may generate dummy data a' by performing random linear transformation on the target data a, or may generate, for example, a random vector as a dummy vector independently of the target data a. Data a' may be determined.
  • the area 408 may not be a circular ring as described above, is generated from the dummy data a', includes the data a and a range similar to the data a (for example, a range within a predetermined distance from the data a), and Any region may be used as long as the data a is not estimated. For example, if data a is included in a random position within the region and the region is sufficiently large (for example, 10 times or more the area of the range similar to data a), data a is estimated from the region It can be said that it is not.
  • the data extraction unit 212 of the user B terminal 200 that has received the dummy data a' and the information of the area 408 extracts the data (vector) included in the area 408 from the data 231 (S502).
  • vectors b, d, and e are included in region 408 .
  • the data extraction unit 212 transmits the number of extracted data (vectors) to the user A terminal 100 (S503).
  • Similar part extraction section 114 of user A terminal 100 evaluates the number received in step S503, and if the number exceeds a predetermined threshold value, dummy data generation section 113 makes area 408 smaller.
  • the information of the area is transmitted to the user B terminal 200, and the data extraction unit 212 of the user B terminal 200 extracts the data included in the reduced area from the data 231 and transmits the number of data to the user A terminal 100. (S504).
  • user A's terminal 100 reduces the area until the number becomes equal to or less than the threshold.
  • the dummy data generation unit 113 reduces ⁇ and ⁇ ' of the radii r+ ⁇ and r ⁇ ' that define the area, or sets an angle to the area containing the data a (for example, a predetermined It is possible to narrow it down by a percentage).
  • User A terminal 100 may determine new values of ⁇ and ⁇ ′ (for example, to decrease by a predetermined ratio or according to input from user A), and user B terminal 200 may decide that the number of refinements is New values of ⁇ and ⁇ ' may be determined so that they are equal to or less than the predetermined threshold values described above.
  • user A's terminal 100 needs to transmit the minimum possible values of ⁇ and ⁇ ' to user B's terminal 200 in advance so that vector b close to user A's target data a is not excluded in the narrowing procedure.
  • the dummy data generation unit 113 sends information defining a (generally high-dimensional) conical region containing data a and having dummy data a' as a vertex.
  • User B's terminal 200 extracts and narrows down the vectors that are simultaneously included in the circular ring centered at a' and the conical region with the vertex at a'.
  • the user A terminal 100 does not directly transmit the information of the data a to the user B terminal 200, and the user B terminal 200 can execute the narrowing down while hiding the information of the data a. Further, the narrowing down reduces the number of vectors to be subjected to the similar part extraction protocol, thereby reducing the amount of processing and communication.
  • Similar part extraction section 114 of user A terminal 100 evaluates the number received in step S503, and if the number is equal to or less than a predetermined threshold, extracts a vector close to data (vector) a while encrypting it.
  • protocol is executed with the similar part extraction unit 114 of the user B terminal 200 to extract data b1, which is the data held by the user B terminal 200 and is closest to the data a (S505, S506).
  • the method described in Patent Document 1 may be used, or the method according to the following procedure shown in FIG. 6 may be used.
  • FIG. 6 is a sequence diagram showing an example of a similar part extraction protocol.
  • an inner product value is used as a distance for vector format data held between user A terminal 100 and user B terminal 200
  • each of user A terminal 100 and user B terminal 200 discloses data.
  • the similar portion extraction unit 114 evaluates the distance between b and a by determining whether b is a vector close to a based on the magnitude of comparison with a predetermined threshold (S606).
  • similar part extraction unit 114 selects p and q sufficiently large, and vectors s and t are also randomly selected within the range of appropriate size elements.
  • each element of vector s and vector t must be smaller than the maximum value of each element of vector a and vector b.
  • User A's similar portion extracting unit 114 terminates the similar portion extraction protocol if it is sufficient to confirm that user B's terminal 200 holds a similar vector according to the evaluation result of the inner product value. If the original data information corresponding to the similar vector is required, the user B terminal 200 is requested to disclose the original data (S607). User B's terminal 200 may disclose the similarity vector and the original data information corresponding to the similarity vector to user A if the information can be disclosed (S608). However, in this case, it should be noted that some information of user A's data a may be leaked to user B. In the similar part extraction process of FIG. 6, since the encryption process, the inner product value calculation process, the mod calculation, and the decryption process to be executed all have a small amount of calculation, it is possible to extract the similar parts at high speed.
  • the Euclidean distance between vectors may be used as the degree of similarity instead of the inner product value.
  • d_Euc(a,b) SQRT( ⁇ a,a>+ ⁇ b,b>-2 ⁇ a,b>) , narrowed down using the above inner product value calculation, and when the number of numbers is sufficiently narrowed down, the above encrypted inner product value calculation is executed, and user B terminal 200 calculates the encrypted inner product value and the inner product value ⁇ b, b> of its own data (a plurality of data, a plurality of inner product values) may be returned to the user A terminal 100.
  • the user A terminal 100 decrypts the encrypted inner product value, obtains ⁇ a, b>, and then calculates the Euclidean distance according to the above formula to evaluate the similarity.
  • a cosine distance (cosine similarity) may be used as the similarity.
  • d_cos(a,b) ⁇ a,b>/(SQRT( ⁇ a,a>)*SQRT( ⁇ b,b>)).
  • Hamming distance may also be used as the degree of similarity. In this case, the Hamming distance is given by the inner product of vectors if the elements are regarded as integers.
  • a distributed SOC (Security Operation Center)
  • a distributed SOC shares information such as threat information on information security among a plurality of organizations. For example, regarding suspicious access from outside the organization or receipt of e-mail, there are cases where information is mutually exchanged to see if similar phenomena have occurred in other organizations.
  • Each organization participating in the distributed SOC group prepares a user A terminal 100 and a user B terminal 200 . It is also assumed that each organization shares a method for transforming target data into a vector representing features.
  • the user A terminal 100 owned by the organization converts the email into a vector representing characteristics.
  • User B's terminal 200 owned by another organization converts a large amount of received mails into vector data in advance.
  • User A terminal 100 and user B terminal 200 efficiently narrow down similar information from the vector data of the large amount of emails by the above-described method, and execute a more accurate similar part extraction protocol from the narrowed down information. Just do it.
  • Similar image and drawing search Consider a case where it is checked whether confidential image data similar to confidential image data held by a certain organization exists among a large number of confidential image data held by other organizations.
  • Confidential image data includes product drawings, facial photographs that can identify individuals, and the like.
  • Such vectorization methods include those applying machine learning, particularly CNN (convolutional neural network).
  • a certain organization has a user A terminal 100, the user A terminal 100 generates a vector representing the characteristics of the image data held, and another organization has a user B terminal 200, and the user B terminal 200 holds confidential image data. Generate a vector representing the features of .
  • the user A terminal 100 and the user B terminal 200 execute the confidential similar part extraction process according to the present embodiment, and after narrowing down a large amount of confidential image data held by other organizations, Image data similar to the confidential image data held by the A terminal 100 can be efficiently extracted.
  • a certain organization has a user A terminal 100
  • the user A terminal 100 generates a vector representing the characteristics of the data it holds
  • another organization has a user B terminal 200
  • the user B terminal 200 has a confidential data.
  • the user A terminal 100 and the user B terminal 200 narrow down a large amount of confidential data held by other organizations by the concealed similar part extraction process according to this embodiment, and then the user A terminal 100 of the organization holds the confidential data. Data similar to confidential data can be efficiently extracted.
  • the characteristics of transaction behavior that the financial company considers suspicious include, for example, the time and amount of money between consecutive transactions. Extraction of similar behaviors may be executed by the method according to the present embodiment.
  • the efficient method according to this embodiment is effective because the history of customer's transaction behavior is enormous.
  • FIG. 7 is a block diagram showing a configuration example of a multi-user confidential similarity partial calculation system.
  • the inter-multiple-user confidential similarity portion calculation system is a diagram showing an example of a system configuration that performs communication between a plurality of user terminals and a center server through the network 1000 and calculates similarity portions of data possessed by the user terminals.
  • the multi-user confidential similarity partial calculation system includes a center server 400 (an example of a first terminal), a user A terminal 100 (an example of a fourth terminal), a user B terminal 200 (an example of a second terminal), and a user C terminal 300 (an example of a third terminal), and these devices are connected to each other via a network 1000 such as the Internet. Although each user terminal can communicate with the center server 400, communication between each user terminal may not be possible.
  • FIG. 7 illustrates an example in which the multi-user encrypted similarity partial calculation system includes three user terminals, but the multi-user encrypted similarity partial calculation system may include four or more user terminals.
  • the center server 400 has the same configuration as the user A terminal 100 shown in FIG. 2 of the first embodiment. Also, the user A terminal 100 and the user B terminal 200 according to the second embodiment have the same configurations as the user A terminal 100 shown in FIG. 2 and the user B terminal 200 shown in FIG. 3 of the first embodiment, respectively. Also, the user C terminal 300 has the same configuration as the user B terminal 200 shown in FIG. 3 of the first embodiment.
  • FIG. 8 is a sequence diagram illustrating an example of the confidential similar data extraction process.
  • the user A terminal 100 calculates through the center server 400 whether or not the data held by the user A terminal 100 is similar to the data held by the user B terminal 200 and the user C terminal 300 .
  • user A terminal 100 converts data a from which a similar part is to be derived into a vector in the same manner as in embodiment 1, and transmits the converted vector to center server 400 (S801).
  • the center server 400 regards the vector sent from the user A terminal 100 as the vector held by itself, and exchanges the data (vector) held by the user B terminal 200 with the user B terminal 200 by the method shown in the first embodiment. is executed (S802, S803). Note that the narrowing down process of steps S501 to S504 may be executed between the center server 400 and the user B terminal 200 before the similar part extraction protocol is executed.
  • the center server 400 regards the similar parts extracted in steps S802 and S803 as data held by itself, and exchanges the data held by the user C terminal 300 with the user C terminal 300 by the method shown in the first embodiment.
  • a similar part extraction protocol is executed (S804, S805). Note that the narrowing down process of steps S501 to S504 may be executed between the center server 400 and the user C terminal 300 before the similar part extraction protocol is executed.
  • the center server 400 may transmit the similar part to any one or all of the user A terminal 100, the user B terminal 200, and the user C terminal 300 to share the information.
  • the present invention is not limited to the above-described embodiments, and includes various modifications.
  • the above-described embodiments have been described in detail in order to explain the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the described configurations. It is also possible to replace part of the configuration of one embodiment with the configuration of another embodiment, or to add the configuration of another embodiment to the configuration of one embodiment. Moreover, it is possible to add, delete, or replace a part of the configuration of each embodiment with another configuration.
  • each of the above configurations, functions, processing units, processing means, etc. may be realized in hardware, for example, by designing a part or all of them with an integrated circuit.
  • each of the above configurations, functions, etc. may be realized by software by a processor interpreting and executing a program for realizing each function.
  • Information such as programs, tables, and files that implement each function can be stored in a recording device such as a memory, a hard disk, an SSD (Solid State Drive), or a recording medium such as an IC card, SD card, or DVD.
  • control lines and information lines indicate what is considered necessary for explanation, and not all control lines and information lines are necessarily indicated on the product. In practice, it may be considered that almost all configurations are interconnected.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

第1端末は、第1ベクトル、ダミーベクトル、及び秘密鍵を保持し、記第2端末は、複数のベクトルを保持し、第1端末は、ダミーベクトルに基づき、かつ第1ベクトルを含む領域を決定し、決定した領域を示す情報を、第2端末に送信し、第2端末は、前記複数のベクトルのうち前記領域に含まれるベクトルを特定し、第1端末は、秘密鍵を用いて第1ベクトルを暗号化し、第1端末及び第2端末は、特定したベクトルのうち、第1ベクトルとの類似度が所定の第1しきい値より高いベクトルを、第1ベクトルを復号化することなく、抽出する。

Description

情報処理システム及び情報処理方法 参照による取り込み
 本出願は、2021年7月29日に出願された日本特許出願第2021-124147号の優先権を主張し、その内容を参照することにより、本出願に取り込む。
 本発明は、情報処理システム及び情報処理方法に関する。
 近年、安全性の高い暗号化技術を用いてデータを暗号化し、当該データを復号化することなく何らかの処理を可能にする技術の研究に注目が集まっている。当該技術は、他者の情報を暗号化したまま必要な処理を行うことで情報の開示を最小限に抑え、不要な情報の漏洩を防ぐことができる。
 特に、複数者がそれぞれ持つ情報に、同様の情報が含まれているかを特定し、分析に応用したいというニーズが高まっている。例えば、不正アクセスを試みる不審なアクセス情報の共有や与信情報の共有のニーズがある。
 しかし、複数者がそれぞれ持つ情報のうち、類似している情報は共有したいが、類似していない情報については他者に知られたくないケースが多い。このような類似部分以外はお互いに開示せずに類似部分情報のみを抽出する安全な技術が求められる。
 このような技術として、情報の類似部分を抽出したい二者が同じ暗号化鍵を共有した上で、それぞれ自身のデータを暗号化し、暗号文を比較するなどして類似部分を抽出する技術がある。しかし、このような技術は、類似部分以外の情報も暗号化して互いに送信しあう。従って、当該技術では、類似部分抽出処理の後に、一方が他方の、類似部分に含まれていなかったキーワードを推測するなどのオフライン攻撃が成立することがあり、類似部分以外の情報が漏えいするおそれがあり、高い安全性を持つとは言えない。
 秘匿類似部分抽出の方法としては、準同型公開鍵暗号と呼ばれる暗号化方式を用いて、一方が持つデータを暗号化して他方に送付し、当該他方は自身の持つ各データを暗号化したものに対して、送付されたデータの暗号文との差分又は当該差分に類似した値を暗号化したまま計算し、その結果の暗号文を返送する方法や、特許文献1に記載の方法がある。
 特許文献1の公報には、「第一の組織の装置は、組織内で秘匿すべき第一のデータ列に対して秘匿のための第一の変形を行い、変形された第一のデータ列を第三の組織の装置へ出力し、第二の組織の装置は、組織内で秘匿すべき第二のデータ列に対して秘匿のための第二の変形を行い、変形された第二のデータ列を第三の組織の装置へ出力し、第三の組織の装置は、変形された第一のデータ列と変形された第二のデータ列との内積を計算して、この内積を少なくとも第二の組織の装置へ返送する。第一の組織の装置は、第二の組織の装置へ、自装置が行った第一の変形に関する情報を送信し、第二の組織の装置は、自装置が行った第二の変形に関する情報と、第一の組織の装置から受信した情報と、第三の組織の装置から受け取った内積とに基づいて、第一のデータ列と第二のデータ列との内積を求める。」と記載されている(要約参照)。
特開2014-206696号公報
 特許文献1に記載の技術は、一方が他方のデータを推測することを防ぐことができ高い安全性を持つと考えられるものの、データ量が増大すると処理量や通信量が飛躍的に増大するため、現実的な時間やコストでは処理が困難である。また、特許文献1に記載の技術では、秘匿内積計算に第三者を仲介しなければならず、これも通信量や通信時間の増加などのコストが増加する。
 そこで、本発明の一態様は、複数のデータ保有者間におけるデータの類似部分の抽出において、類似していないデータについては他者に情報が漏えいするリスクを低減しつつ、少ない計算量及び通信量で類似部分を抽出する。
 上記課題を解決するために、本発明の一態様は、以下の構成を採用する。情報処理システムは、第1端末と第2端末とを含み、前記第1端末は、第1ベクトル、ダミーベクトル、及び秘密鍵を保持し、前記第2端末は、複数のベクトルを保持し、前記第1端末及び前記第2端末は絞込み処理を実行し、前記絞込み処理において、前記第1端末は、前記ダミーベクトルに基づき、かつ前記第1ベクトルを含む領域を決定し、前記決定した領域を示す情報を、前記第2端末に送信し、前記第2端末は、前記複数のベクトルのうち前記領域に含まれるベクトルを特定し、前記第1端末及び前記第2端末は、類似部分抽出処理を実行し、前記類似部分抽出処理において、前記第1端末は、前記秘密鍵を用いて前記第1ベクトルを暗号化し、前記第1端末及び前記第2端末は、前記特定したベクトルのうち、前記第1ベクトルとの類似度が所定の第1しきい値より高いベクトルを、前記第1ベクトルを復号化することなく、抽出する。
 本発明の一態様によれば、複数のデータ保有者間におけるデータの類似部分の抽出において、類似していないデータについては他者に情報が漏えいするリスクを低減しつつ、少ない計算量及び通信量で類似部分を抽出することができる。
 上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
実施例1における秘匿類似部分抽出システムの一例を示すブロック図である。 実施例1におけるユーザA端末の構成例を示すブロック図である。 実施例1におけるユーザB端末の構成例を示すブロック図である。 実施例1におけるユーザA端末が保持するデータに類似する、ユーザB端末が保持するデータの絞込みの概要を示す説明図である。 実施例1における秘匿類似データ抽出処理の一例を示すシーケンス図である。 実施例1における類似部分抽出プロトコルの一例を示すシーケンス図である。 実施例2における複数ユーザ間秘匿類似部分計算システムの構成例を示すブロック図である。 実施例2における秘匿類似データ抽出処理の一例を示すシーケンス図である。
 次に、本発明を実施するための形態について、適宜図面を参照しながら詳細に説明する。なお、実施形態において、同一の部材には原則として同一の符号を付け、繰り返しの説明は省略する。
<システム構成例>
 図1は、秘匿類似部分抽出システムの一例を示すブロック図である。秘匿類似部分抽出システムは、二者間で一方が自身のデータを暗号化したまま他方のデータと照合し、類似部分を抽出するシステムである。秘匿類似部分抽出システムは、ユーザA端末100(第1端末の一例)と、ユーザB端末200(第2端末の一例)とを含む。ユーザA端末100と、ユーザB端末200と、はインターネット等のネットワーク1000を介して互いに接続され、通信可能な状態である。
(ユーザA端末100の構成例)
 図2は、ユーザA端末100の構成例を示すブロック図である。ユーザA端末100は、例えば、CPU110、補助記憶装置120、入力装置101、出力装置102、通信装置103、及びメモリ104を有する計算機によって構成される。
 CPU110は、プロセッサを含み、メモリ104に格納されたプログラムを実行する。メモリ104は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS(Basic Input/Output System))などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU110が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
 補助記憶装置120は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、CPU110が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置120から読み出されて、メモリ104にロードされて、CPU110によって実行される。
 なお、本実施形態において、秘匿類似部分抽出システムが使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース、又はキューから適切に選択したデータ構造体が、情報を格納することができる。
 入力装置101は、キーボードやマウスなどの、オペレータからの入力を受ける装置である。出力装置102は、ディスプレイ装置やプリンタなどの、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。通信装置103は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
 CPU110が実行するプログラムは、非一時的な記憶装置を備えた他の情報処理装置から、非一時的な記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワーク1000を介してユーザA端末100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置120に格納されてもよい。このため、ユーザA端末100は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。これは、ユーザB端末200についても同様である。
 ユーザA端末100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。これは、ユーザB端末200についても同様である。
 CPU110は、例えば、暗号化処理部111と、復号化処理部112と、ダミーデータ生成部113と、類似部分抽出部114と、を含む。暗号化処理部111は、ユーザAが持つデータ131を暗号化する。復号化処理部112は、ユーザAのデータとユーザBのデータとが暗号化したまま算出されたユーザAのデータとユーザBのデータとの距離値を復号化する。ダミーデータ生成部113は、ユーザB端末200が保持するデータを絞り込む際に用いられるダミーデータを生成する。なお、CPU110は、データを出力装置102に表示する処理を行ったり、補助記憶装置120に格納されているデータを読み込み、通信装置103を介して、ユーザB端末200へ送信したりする。類似部分抽出部114は、データ131に含まれるデータが暗号化されたまま、当該データに類似するデータを、ユーザB端末200が有するデータから抽出する。
 例えば、CPU110は、メモリ104にロードされた暗号化処理プログラムに従って動作することで、暗号化処理部111として機能し、メモリ104にロードされた復号化処理プログラムに従って動作することで、復号化処理部112として機能する。CPU110に含まれる他の機能部についても、プログラムと機能部の関係は同様である。また、ユーザB端末200が有する後述するCPU210に含まれる後述する機能部についても、プログラムと機能部の関係は同様である。
 なお、CPU110及びCPU210に含まれる機能部による機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよい。
 補助記憶装置120は、データ記憶領域130及び暗復号化鍵記憶領域140を含む。データ記憶領域130は、ユーザAが保持するデータ131などが格納される。暗復号化鍵記憶領域140には、暗号化処理部111や復号化処理部112による処理に利用される暗号化鍵141及び復号化鍵142が格納される。
(ユーザB端末200の構成例)
 図3は、ユーザB端末200の構成例を示すブロック図である。ユーザB端末200は、例えば、CPU210、補助記憶装置220、入力装置201、出力装置202、通信装置203、及びメモリ204を有する計算機によって構成される。
 CPU210、補助記憶装置220、入力装置201、出力装置202、通信装置203、及びメモリ204のハードウェアとしての説明は、CPU110、補助記憶装置120、入力装置101、出力装置102、通信装置103、及びメモリ104のハードウェアとしての説明と同様であるため省略する。
 CPU210は、距離値計算部211、データ抽出部212、及び類似部分抽出部213を含む。補助記憶装置120は、データ231を格納するためのデータ格納領域230を有する。なお、ユーザA端末100が有するデータ131及びユーザB端末200が有するデータ231は、その特徴を表すベクトルデータに変換されているものとする。データが文書である場合には、各要素が単語のカテゴリを表すベクトルを用いてその文書に現れる単語の頻度に応じて要素の値を決めることで当該データをベクトルデータに変換する方法がある。また、データが画像データである場合には、畳み込みニューラルネットワークでの最終値をハッシュ値とみなし、ビットベクトルとして対応付けることで当該データをベクトルデータに変換する方法などがある。
 距離値計算部211は、ユーザA端末100から送信された絞込みのためのデータと、ユーザB端末200が有するデータ231との距離を計算し、ユーザAから送信されたしきい値と比較して当該しきい値より近いデータを抽出する。ここで、データがベクトルに変換されて対応付けられているため、ユークリッド空間の距離や、内積値、コサイン距離などはいずれもデータ間の距離の一例として利用可能である。また絞込みが十分に終了した後、距離値計算部211は暗号化したまま距離を計算するプロトコルをユーザA端末100との間で実行し、暗号化された距離情報をユーザA端末100に送信する。データ抽出部212は、データ231のうちユーザA端末100が指定した領域に含まれるデータを抽出する。類似部分抽出部213は、データ131に含まれるデータが暗号化されたまま、当該データに類似するデータを、データ231から抽出するための処理を実行する。
<データの絞込み>
 図4は、ユーザA端末100が保持するデータ131に類似する、ユーザB端末200が保持するデータ231の絞込みの概要を示す説明図である。図4では、データが2次元のベクトルであり、距離としてユークリッド距離が用いられる例を示す。一般には高次元ベクトルやユークリッド距離以外の距離に対しても、内積で表現できる距離であれば、以下に示す方法と同様の方法で絞込みを実行することができる。
 図5は、秘匿類似データ抽出処理の一例を示すシーケンス図である。以下に説明するが、ユーザA端末100は目的とするデータa(データ131に含まれる)とは無関係なダミーデータa’を生成し、目的とするデータaとの距離rを計算する。なお、図4におけるベクトルb,c,d,e,fは、いずれもユーザB端末200が保持するデータである。
 まず、ユーザA端末100のダミーデータ生成部113は、ダミーデータa’を生成し、生成したダミーデータa’と、a’からの距離がr+εである円の内側とa’からの距離がr-ε’である円の外側との共通領域である円環の領域408と、を示す情報をユーザB端末200に送信する(S501)。なお、ダミーデータ生成部113は、目的とするデータaにランダムな線形変換を施すことでダミーデータa’を生成してもよいし、目的とするデータaに依存せず例えばランダムなベクトルをダミーデータa’に決定してもよい。
 また、領域408は、上記したような円環でなくてもよく、ダミーデータa’から生成され、データa及びデータaに類似する範囲(例えばデータaから所定距離以内の範囲)を含み、かつデータaを推測されない領域であればよい。例えば、当該領域内のランダムな位置にデータaが含まれ、かつ当該領域が十分な大きさ(例えばデータaに類似する範囲の面積の10倍以上)であれば、当該領域からデータaを推測されないといえる。
 ダミーデータa’と領域408の情報を受信したユーザB端末200のデータ抽出部212は、データ231のうち、領域408に含まれるデータ(ベクトル)を抽出する(S502)。図4の例では、ベクトルb,d,eが領域408に含まれている。データ抽出部212は抽出したデータ(ベクトル)の個数をユーザA端末100に送信する(S503)。
 ユーザA端末100の類似部分抽出部114は、ステップS503で受信した個数を評価し、個数が所定のしきい値を超えている場合には、ダミーデータ生成部113は、領域408をより小さくした領域の情報をユーザB端末200に送信し、ユーザB端末200のデータ抽出部212は、データ231のうち当該小さくした領域に含まれるデータを抽出して、データの個数をユーザA端末100に送信する(S504)。つまり、個数が当該しきい値以下になるまで、ユーザA端末100は領域を小さくする。
 領域を小さくする処理の一例として、ダミーデータ生成部113は、領域を定義する半径r+ε、r-ε’の、ε、ε’を小さくしたり、データaを含む領域へ角度を(例えば所定の割合で)狭めたりするなどが考えられる。
 ユーザA端末100が新たなε、ε’の値を(例えば、所定の割合で小さくなるように又はユーザAからの入力に従って)決定してもよいし、ユーザB端末200が、絞込みの個数が上記した所定のしきい値以下となるよう新たなε、ε’の値を決定してもよい。ただし、ユーザAが目的とするデータaに近いベクトルbが絞込み手順で排除されないようにユーザA端末100があらかじめε、ε’の取り得る最小値をユーザB端末200に送信する必要がある。
 データaを含む領域へ角度を狭める処理の一例として、ダミーデータ生成部113は、データaを含み、ダミーデータa’を頂点とする、(一般には高次元)円錐領域を定義する情報をユーザB端末200に送信し、ユーザB端末200はa‘を中心とする円環と、a’を頂点とする円錐領域に同時に含まれるベクトルを抽出して絞り込む。
 上記した絞込み手順において、ユーザA端末100は、ユーザB端末200にデータaの情報を直接送信しておらず、データaの情報を隠しながらユーザB端末200は絞込みを実行することができる。また、絞込みによって、類似部分抽出プロトコルの対象となるベクトルの個数が減少し、処理量及び通信量が低下する。
 ユーザA端末100の類似部分抽出部114は、ステップS503で受信した個数を評価し、個数が所定のしきい値以下である場合には、データ(ベクトル)aと近いベクトルを暗号化したまま抽出するプロトコルをユーザB端末200の類似部分抽出部114との間で実行し、ユーザB端末200が保持するデータであって、データaに最も近いデータb1を抽出する(S505、S506)。データb1を抽出するプロトコルとしては特許文献1に記載の方法でもよいし、図6に示す以下の手順による方法でもよい。
<類似部分抽出プロトコル>
 図6は、類似部分抽出プロトコルの一例を示すシーケンス図である。以下ではユーザA端末100とユーザB端末200との間でそれぞれが保持するベクトル形式のデータに対して、距離として内積値を用いる場合に、ユーザA端末100及びユーザB端末200それぞれがデータを開示することなく、暗号化したまま内積値を計算する方法を例示する。ユーザA端末100が保持するデータがベクトルa=(a1,a2,…,an)、ユーザB端末200が保持するデータがベクトルb=(b1,b2,…,bn)であるとする。
 ユーザA端末100の暗号化処理部111は、データの暗号化のための秘密鍵として異なる素数p,qを選び(S601)、暗号化の際にはベクトルs=(s1,s2,…,sn),t=(t1,t2,…,tn)をランダムに選び(S602)、C=a+s*p+t*q=(a1+s1*p+t1*q,a2+s2*p+t2*q,…,an+sn*p+tn*q)を計算してユーザB端末200に送信する(S603)。
 ユーザB端末200の類似部分抽出部213は、Cとbとの内積I=(a1+s1*p+t1*q)*b1+(a2+s2*p+t2*q)*b2+…+(an+sn*p+tn*q)*bnを計算してユーザA端末100に返送する(S604)。
 ユーザA端末100の復号化処理部112は、I’=(I mod q)mod pを計算して、I’をベクトルaとベクトルbの内積値として導出することで、内積値を復号する(S605)。類似部分抽出部114は、あらかじめ決めたしきい値との比較の大小などにより、bがaに近いベクトルか否かを判断することで、bのaとの距離を評価する(S606)。ここでI’がベクトルaとベクトルbの内積値になるためには、類似部分抽出部114は、p,qを十分大きく取り、またベクトルs、tも適切な大きさの要素の範囲でランダムに選択される必要がある。具体的には、例えば、pは、ベクトルaとベクトルbの内積の最大値(ベクトルaとベクトルbとが動く範囲が定められているとする)よりも大きい必要があり、qはpより大きい必要がある。また、例えば、ベクトルsとベクトルtの各要素が、ベクトルaとベクトルbの各要素の最大値より小さい必要がある。
 ユーザAの類似部分抽出部114は、内積値の評価結果に応じて、ユーザB端末200が類似ベクトルを保持することを確認するだけで十分であれば類似部分抽出プロトコルを終了し、類似ベクトル及び類似ベクトルに対応する元データ情報が必要であれば、ユーザB端末200に元データの開示を依頼する(S607)。ユーザB端末200は、類似ベクトル及び類似ベクトルに対応する元データ情報が開示可能であればこれらの情報をユーザAに開示してもよい(S608)。ただし、この場合はユーザAのデータaの一部の情報がユーザBに漏洩する可能性があることに注意する。図6の類似部分抽出処理では、実行される暗号化処理、内積値算出処理、mod計算、及び復号化処理はいずれも計算量が少ないため、高速に類似部分を抽出することができる。
 上記で例示した類似部分抽出プロトコルでは、ユーザB端末200が保持する内積値計算対象のベクトルの個数と同数の暗号化された内積値をユーザA端末100に送付する必要がある。絞込み処理を実行し、十分に個数を減らすことで通信量を抑えることができる。
 上記では内積値計算が実行される例を説明したが、類似度として内積値の代わりにベクトル間のユークリッド距離が用いられてもよい。この場合、ユーザA端末100が保持するデータがベクトルa=(a1,a2,…,an)、ユーザB端末200が持つデータがベクトルb=(b1,b2,…,bn)であるとき、ユークリッド距離をd_Euc(a,b)、内積を< , >で表せば、d_Euc(a,b)=SQRT(<a,a>+<b,b>-2<a,b>)で与えられるため、上記内積値計算を用いて絞込み、個数を十分絞込んだ段階で上記秘匿内積値計算を実行し、ユーザB端末200は秘匿内積値と、自身のデータの内積値<b,b>(複数のデータがある場合は複数の内積値)をユーザA端末100に返送すればよい。ユーザA端末100は暗号化された内積値を復号し、<a,b>を得た後、上記式によるユークリッド距離を計算して類似度を評価する。
 また、類似度としてコサイン距離(コサイン類似度)が用いられてもよい。この場合、コサイン距離d_cos(a,b)はd_cos(a,b)=<a,b>/(SQRT(<a,a>)*SQRT(<b,b>))で与えられるため、上記したユークリッド距離が用いられる場合と同様に、内積値計算を用いた絞込みと秘匿内積計算プロトコル、及びユーザB端末200が保有するベクトルの内積値<b,b>(複数ある場合は複数)を用いたコサイン距離の評価が実行されればよい。
 また、類似度としてハミング距離が用いられてもよく、この場合、ハミング距離は要素を整数とみなせばベクトルの内積で与えられるため、上記の内積値での類似度評価方法を用いればよい。
<ユースケース>
 以下、秘匿類似部分抽出システムのユースケースを説明する。
(分散SOC(Security Operation Cneter))
 分散SOC(Security Operation Cneter)では、複数の組織間で情報セキュリティ上の脅威情報などの情報共有を行う。例えば、組織外からの不審なアクセスや、メール着信などについて、他の組織でも同様の現象が発生しているかなどを相互に情報交換するケースがある。
 アクセスや同様のメール着信があった場合にはその他組織がその現象をどのように分析しているかなどについて情報交換を行う。しかし、他組織にはそのようなメールが着信していない場合もあり、その際、着信したメールの内容や、発信元のアドレスなどは伏せておきたい。
 このような場合、本実施例に記載の秘匿類似部分抽出システムを用いて類似情報の検索や、類似情報に関する情報交換が行われるとよい。分散SOCのグループに参加している各組織は、ユーザA端末100及びユーザB端末200を準備する。また、当該各組織は対象データの特徴を表すベクトルに変換するための方法も共有しているとする。
 組織が、メールなどにおいて一部内容が異なるが大部分は一致しているような、類似の情報を検索したい場合は、当該組織が保有するユーザA端末100は、当該メールを、特徴を表すベクトルデータに変換し、他組織が保有するユーザB端末200は、着信している大量のメールをそれぞれベクトルデータに予め変換しておく。ユーザA端末100及びユーザB端末200は、当該大量のメールのベクトルデータから、上記した方法により、効率的に類似情報を絞込み、絞込みを行ったものの中からより正確な類似部分抽出プロトコルを実行すればよい。
 メールを、その特徴を表すベクトルに変換する方法の一例として、メールの本文やタイトルに記述されている単語を抽出し、その単語が表す意味の分類(事前に準備し、組織間で共有している辞書などを用いて分類)と、当該単語が出現する頻度と、に基づいて、ベクトル化するなどの方法がある。
(類似画像及び図面検索)
 ある組織が保有する機密画像データに類似する機密画像データが、他組織が持つ多数の機密画像データの中にあるかを調べるケースを考える。機密画像データとしては、製品の図面や、個人を識別可能な顔写真などがある。画像の特徴を抽出してベクトル化する方法をこれらの組織間で共有しているとする。このようなベクトル化方法としては機械学習、特にCNN(convolutional neural network)を応用したものなどがある。
 ある組織はユーザA端末100を保有し、ユーザA端末100は保有する画像データの特徴を表すベクトルを生成し、他組織はユーザB端末200を保有し、ユーザB端末200は保有する機密画像データの特徴を表すベクトルを生成しておく。ユーザA端末100及びユーザB端末200は、本実施例による秘匿類似部分抽出処理を実行することにより、他組織が持つ多数の機密画像データの中から、絞込みを行ってから、当該ある組織のユーザA端末100が保持する機密画像データに類似している画像データを効率的に抽出することができる。
(ユーザ行動履歴検索(購買及び移動))
 ある組織が保有する顧客の行動を記録した機密データに類似する機密データが、他組織が持つ多数の顧客行動履歴データの中にあるかを調べるケースを考える。顧客の行動履歴として、顧客の購買履歴や移動履歴及び問い合わせ履歴などがる。これらの行動履歴を示すデータがすでにベクトル化された情報ならば、そのまま本実施例で説明した方法で類似データの抽出を実施すればよい。
 位置及び移動履歴情報などにおいて場所の座標情報を単位時間ごとに抽出してベクトル化する方法などがある。また、問い合わせ履歴などテキストデータとして保管されているような非構造化データは前述のメールをベクトルデータに変換する方法で特徴を表すベクトルに変換する方法などが考えられる。
 このような特徴を抽出してベクトル化する方法をこれらの組織間で共有しているとする。ある組織はユーザA端末100を保有し、ユーザA端末100は保有するデータの特徴を表すベクトルを生成し、他組織はユーザB端末200を保有し、ユーザB端末200は、保有する機密データの特徴を表すベクトルを生成しておく。ユーザA端末100及びユーザB端末200は、本実施例による秘匿類似部分抽出処理により他組織が持つ多数の機密データの中から、絞込みを行ってから、当該ある組織のユーザA端末100が保持する機密データに類似するデータを効率的に抽出することができる。
(金融商品売買(不正検知))
 証券会社などの金融関係企業が自身の顧客の取引情報をもとに不正行為の有無などを分析するケースや、同業他社などで同様の取引行動をとっている顧客の有無やこのような顧客が存在する場合にその顧客の取引が不審であるか否かをその同業他社が認知しているかなどの情報交換をするケースを考える。
 不審と思われる取引行動と同様の行動をとっている顧客がいなかった場合、当該金融関係企業は保有している情報を同業他社には開示したくない。また同業他社も類似している情報以外は開示したくない。このような状況に置いて、顧客の取引行動の特徴をベクトル化すれば本実施例で説明した方法で類似データを抽出することができる。
 当該金融関係企業が不審と考える取引行動の特徴として、例えば連続した取引の間の時間や金額などが挙げられるが、それらを情報交換する相手との間であらかじめ形式を決めたベクトルとして表現し、本実施例による方法により、類似行動の抽出を実行すればよい。顧客の取引行動の履歴は膨大な件数にのぼるため、本実施例による効率的な方法が有効である。
<システム構成>
図7は、複数ユーザ間秘匿類似部分計算システムの構成例を示すブロック図である。複数ユーザ間秘匿類似部分計算システムは、複数のユーザ端末と、センターサーバ間でネットワーク1000を通じて通信を行い、ユーザ端末の持つデータの類似部分を計算するシステム構成例を示す図である。
 複数ユーザ間秘匿類似部分計算システムは、センターサーバ400(第1端末の一例)と、ユーザA端末100(第4端末の一例)と、ユーザB端末200(第2端末の一例)と、ユーザC端末300(第3端末の一例)と、を含み、これらの装置がインターネット等のネットワーク1000を介して互いに接続されている。なお、各ユーザ端末は、センターサーバ400と通信可能であるが、各ユーザ端末間の通信は不可能であってもよい。図7では、複数ユーザ間秘匿類似部分計算システムが3つのユーザ端末を含む例を説明しているが、複数ユーザ間秘匿類似部分計算システムが4つ以上のユーザ端末を含んでもよい。
 センターサーバ400は、実施例1の図2に示すユーザA端末100と同様の構成である。また、実施例2に係るユーザA端末100及びユーザB端末200は、それぞれ実施例1の図2に示すユーザA端末100及び図3に示すユーザB端末200と同様の構成である。また、ユーザC端末300は、実施例1の図3に示すユーザB端末200と同様の構成である。
<秘匿類似データ抽出処理>
 図8は、秘匿類似データ抽出処理の一例を示すシーケンス図である。ユーザA端末100は自身が保持するデータが、ユーザB端末200とユーザC端末300の持つデータと類似部分があるか否かを、センターサーバ400を通じて計算する。
 まず、ユーザA端末100は、類似部分を導出したいデータaを実施例1と同様の方法で、ベクトルに変換し、変換したベクトルをセンターサーバ400に送信する(S801)。センターサーバ400はユーザA端末100から送付されたベクトルを、自身が保持するベクトルとみなし、ユーザB端末200との間で、実施例1で示した方法によりユーザB端末200が持つデータ(ベクトル)との類似部分抽出プロトコルを実行する(S802、S803)。なお、類似部分抽出プロトコルが実行される前に、センターサーバ400とユーザB端末200との間で、ステップS501~ステップS504の絞込み処理が実行されてもよい。
 センターサーバ400はステップS802及びステップS803で抽出した類似部分を、自身が保持するデータとみなし、ユーザC端末300との間で、実施例1で示した方法によりユーザC端末300が持つデータとの類似部分抽出プロトコルを実行する(S804、S805)。なお、類似部分抽出プロトコルが実行される前に、センターサーバ400とユーザC端末300との間で、ステップS501~ステップS504の絞込み処理が実行されてもよい。センターサーバ400は、ユーザA端末100、ユーザB端末200、及びユーザC端末300のいずれか又は全てに類似部分を送信して、情報を共有してもよい。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。

Claims (10)

  1.  第1端末と第2端末とを含む情報処理システムであって、
     前記第1端末は、第1ベクトル、ダミーベクトル、及び秘密鍵を保持し、
     前記第2端末は、複数のベクトルを保持し、
     前記第1端末及び前記第2端末は絞込み処理を実行し、
     前記絞込み処理において、
      前記第1端末は、前記ダミーベクトルに基づき、かつ前記第1ベクトルを含む領域を決定し、前記決定した領域を示す情報を、前記第2端末に送信し、
      前記第2端末は、前記複数のベクトルのうち前記領域に含まれるベクトルを特定し、
     前記第1端末及び前記第2端末は、類似部分抽出処理を実行し、
     前記類似部分抽出処理において、
      前記第1端末は、前記秘密鍵を用いて前記第1ベクトルを暗号化し、
      前記第1端末及び前記第2端末は、前記特定したベクトルのうち、前記第1ベクトルとの類似度が所定の第1しきい値より高いベクトルを、前記第1ベクトルを復号化することなく、抽出する、情報処理システム。
  2.  請求項1に記載の情報処理システムであって、
     前記絞込み処理において、
     前記第2端末は、前記特定したベクトルの個数を前記第1端末に送信し、
     前記第1端末が、前記特定したベクトルの個数が所定の第2しきい値以下であるかの判定処理を実行し、
     前記第1端末が、前記判定処理において、前記特定したベクトルの個数が所定の第2しきい値以下であると判定した場合、前記絞込み処理が終了して、前記類似部分抽出処理が実行され、
     前記第1端末が、前記判定処理において、前記特定したベクトルの個数が前記第2しきい値より大きいと判定した場合、前記絞込み処理が再度実行され、
     前記第1端末は、前回の絞込み処理で決定された領域を、前記ダミーベクトルに基づき、前記第1ベクトルを含み、かつ当該領域を縮小した領域に更新し、更新後の領域を示す情報を、前記第2端末に送信し、
     前記第2端末は、前記複数のベクトルのうち前記更新後の領域に含まれるベクトルを特定して、前記第1端末に送信して、前記判定処理が実行される、情報処理システム。
  3.  請求項1に記載の情報処理システムであって、
     前記類似部分抽出処理において、
     前記第1端末は、前記暗号化した第1ベクトルを前記第2端末に送信し、
     前記第2端末は、前記暗号化した第1ベクトルと、前記特定したベクトルそれぞれと、の暗号化類似度を算出して、前記第1端末に送信し、
     前記第1端末は、前記秘密鍵を用いて、前記暗号化類似度それぞれを復号化することで、前記類似度を算出する、情報処理システム。
  4.  請求項3に記載の情報処理システムであって、
     前記秘密鍵は、異なる素数p,qであり、
     前記第1ベクトルはa=(a1,a2,…,an)、
     前記特定したベクトルはb=(b1,b2,…,bn)であり、
     前記類似部分抽出処理において、
     前記第1端末は、
     ベクトルs=(s1,s2,…,sn)、及びt=(t1,t2,…,tn)をランダムに選択し、
     C=a+s*p+t*q=(a1+s1*p+t1*q, a2+s2*p+t2*q,…, an+sn*p+tn*q)を計算して、前記第2端末に送信し、
     前記第2端末は、Cとbとの内積値I=(a1+s1*p+t1*q)*b1+(a2+s2*p+t2*q)*b2+…+(an+sn*p+tn*q)*bnを前記暗号化類似度として計算して、前記第1端末に送信し、
     前記第1端末は、I’=(I mod q)mod pを計算することで、I’をベクトルaとベクトルbの前記類似度として算出する、情報処理システム。
  5.  請求項1に記載の情報処理システムであって、
     第3端末と第4端末とを含み、
     前記第3端末は、複数のベクトルを保持し、
     前記第4端末は、前記第1ベクトルを保持し、
     前記第1端末が保持する前記第1ベクトルは、前記第4端末から送信されたものであり、
     前記第1端末は、前記第2端末との間で実行された前記類似部分抽出処理において抽出したベクトルを前記第1ベクトルとみなして、前記第3端末との間で、前記絞込み処理及び前記類似部分抽出処理を実行する、情報処理システム。
  6.  第1端末と第2端末とを含む情報処理システムによる情報処理方法であって、
     前記第1端末は、第1ベクトル、ダミーベクトル、及び秘密鍵を保持し、
     前記第2端末は、複数のベクトルを保持し、
     前記情報処理方法は、
     前記第1端末及び前記第2端末が、絞込み処理を実行し、
     前記絞込み処理において、
      前記第1端末が、前記ダミーベクトルに基づき、かつ前記第1ベクトルを含む領域を決定し、前記決定した領域を示す情報を、前記第2端末に送信し、
      前記第2端末が、前記複数のベクトルのうち前記領域に含まれるベクトルを特定し、
     前記第1端末及び前記第2端末が、類似部分抽出処理を実行し、
     前記類似部分抽出処理において、
      前記第1端末が、前記秘密鍵を用いて前記第1ベクトルを暗号化し、
      前記第1端末及び前記第2端末が、前記特定したベクトルのうち、前記第1ベクトルとの類似度が所定の第1しきい値より高いベクトルを、前記第1ベクトルを復号化することなく、抽出する、情報処理方法。
  7.  請求項6に記載の情報処理方法であって、
     前記絞込み処理において、
     前記第2端末が、前記特定したベクトルの個数を前記第1端末に送信し、
     前記第1端末が、前記特定したベクトルの個数が所定の第2しきい値以下であるかの判定処理を実行し、
     前記第1端末が、前記判定処理において、前記特定したベクトルの個数が所定の第2しきい値以下であると判定した場合、前記絞込み処理が終了して、前記類似部分抽出処理が実行され、
     前記第1端末が、前記判定処理において、前記特定したベクトルの個数が前記第2しきい値より大きいと判定した場合、前記絞込み処理が再度実行され、
     前記第1端末が、前回の絞込み処理で決定された領域を、前記ダミーベクトルに基づき、前記第1ベクトルを含み、かつ当該領域を縮小した領域に更新し、更新後の領域を示す情報を、前記第2端末に送信し、
     前記第2端末が、前記複数のベクトルのうち前記更新後の領域に含まれるベクトルを特定して、前記第1端末に送信して、前記判定処理が実行される、情報処理方法。
  8.  請求項6に記載の情報処理方法であって、
     前記類似部分抽出処理において、
     前記第1端末が、前記暗号化した第1ベクトルを前記第2端末に送信し、
     前記第2端末が、前記暗号化した第1ベクトルと、前記特定したベクトルそれぞれと、の暗号化類似度を算出して、前記第1端末に送信し、
     前記第1端末が、前記秘密鍵を用いて、前記暗号化類似度それぞれを復号化することで、前記類似度を算出する、情報処理方法。
  9.  請求項8に記載の情報処理方法であって、
     前記秘密鍵は、異なる素数p,qであり、
     前記第1ベクトルはa=(a1,a2,…,an)、
     前記特定したベクトルはb=(b1,b2,…,bn)であり、
     前記情報処理方法は、
     前記類似部分抽出処理において、
     前記第1端末が、ベクトルs=(s1,s2,…,sn)、及びt=(t1,t2,…,tn)をランダムに選択し、
     前記第1端末が、C=a+s*p+t*q=(a1+s1*p+t1*q, a2+s2*p+t2*q,…, an+sn*p+tn*q)を計算して、前記第2端末に送信し、
     前記第2端末が、Cとbとの内積値I=(a1+s1*p+t1*q)*b1+(a2+s2*p+t2*q)*b2+…+(an+sn*p+tn*q)*bnを前記暗号化類似度として計算して、前記第1端末に送信し、
     前記第1端末が、I’=(I mod q)mod pを計算することで、I’をベクトルaとベクトルbの前記類似度として算出する、情報処理方法。
  10.  請求項6に記載の情報処理方法であって、
     前記情報処理システムは、第3端末と第4端末とを含み、
     前記第3端末は、複数のベクトルを保持し、
     前記第4端末は、前記第1ベクトルを保持し、
     前記第1端末が保持する前記第1ベクトルは、前記第4端末から送信されたものであり、
     前記情報処理方法は、
     前記第1端末が、前記第2端末との間で実行された前記類似部分抽出処理において抽出したベクトルを前記第1ベクトルとみなして、前記第3端末との間で、前記絞込み処理及び前記類似部分抽出処理を実行する、情報処理方法。
PCT/JP2022/025580 2021-07-29 2022-06-27 情報処理システム及び情報処理方法 WO2023008045A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021124147A JP2023019432A (ja) 2021-07-29 2021-07-29 情報処理システム及び情報処理方法
JP2021-124147 2021-07-29

Publications (1)

Publication Number Publication Date
WO2023008045A1 true WO2023008045A1 (ja) 2023-02-02

Family

ID=85087857

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/025580 WO2023008045A1 (ja) 2021-07-29 2022-06-27 情報処理システム及び情報処理方法

Country Status (2)

Country Link
JP (1) JP2023019432A (ja)
WO (1) WO2023008045A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013038698A1 (ja) * 2011-09-14 2013-03-21 独立行政法人産業技術総合研究所 検索システム、検索方法、およびプログラム
WO2016203555A1 (ja) * 2015-06-16 2016-12-22 株式会社日立製作所 類似性秘匿検索システム、類似性秘匿検索方法
JP2016224400A (ja) * 2015-05-29 2016-12-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 類似情報検索方法、端末装置及び類似情報検索システム
WO2017061024A1 (ja) * 2015-10-09 2017-04-13 三菱電機株式会社 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013038698A1 (ja) * 2011-09-14 2013-03-21 独立行政法人産業技術総合研究所 検索システム、検索方法、およびプログラム
JP2016224400A (ja) * 2015-05-29 2016-12-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 類似情報検索方法、端末装置及び類似情報検索システム
WO2016203555A1 (ja) * 2015-06-16 2016-12-22 株式会社日立製作所 類似性秘匿検索システム、類似性秘匿検索方法
WO2017061024A1 (ja) * 2015-10-09 2017-04-13 三菱電機株式会社 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム

Also Published As

Publication number Publication date
JP2023019432A (ja) 2023-02-09

Similar Documents

Publication Publication Date Title
US10547446B2 (en) Method and apparatus for providing a universal deterministically reproducible cryptographic key-pair representation for all SKUs, shipping cartons, and items
JP5975490B2 (ja) 検索システム、検索方法、およびプログラム
Zhang et al. Additively homomorphical encryption based deep neural network for asymmetrically collaborative machine learning
JP5762232B2 (ja) プライバシを保護したまま暗号化された要素の順序を選択するための方法およびシステム
Banegas et al. Low-communication parallel quantum multi-target preimage search
George et al. Data sharing made easy by technology trends: New data sharing and privacy preserving technologies that bring in a new era of data monetization
US11856099B2 (en) Cryptographic pseudonym mapping method, computer system, computer program and computer-readable medium
EP3365999A1 (en) Secure comparison of information
US11184163B2 (en) Value comparison server, value comparison encryption system, and value comparison method
Grivet Sébert et al. SPEED: secure, PrivatE, and efficient deep learning
US20230006819A1 (en) Systems and methods for homomorphic encryption-based triggering
CN112000978B (zh) 隐私数据的输出方法、数据处理系统及存储介质
Zhang et al. Cryptosystem identification scheme based on ASCII code statistics
US20120155641A1 (en) Non-interactive verifiable, delegated computation
WO2018008547A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
WO2023008045A1 (ja) 情報処理システム及び情報処理方法
WO2022089518A1 (zh) 地址的生成方法、区块链信息的处理方法以及相关设备
Peeran et al. E-governance security via public key cryptography using elliptic curve cryptography
Petrenko et al. Universal quantum gate as a tool for modeling quantum cryptanalysis algorithms on a quantum circuit
KR102123435B1 (ko) 멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치
US20040003254A1 (en) Network system, server and information terminal for list matching
Saxena et al. Integration of back-propagation neural network to classify of cybercriminal entities in blockchain
Patil Enhanced-elliptic curve Diffie Hellman algorithm for secure data storage in multi cloud environment
Maradithaya et al. Secure model for clustering distributed data
Shoba et al. Data Security and Privacy Preserving with Augmented Homomorphic Re-Encryption Decryption (AHRED) Algorithm in Big Data Analytics

Legal Events

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

Ref document number: 22849115

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE