The present invention relates to an information processing program, an information processing method, and an information processing device.
A matching system is a service for combining demand with supply. The matching system is developed in various forms such as recruitment matching, resource matching, a free market, and a matching app. In the matching system, for example, matching between users is performed by matching attribute information submitted by a user with an interest in an attribute submitted by another user.
Related art is disclosed in U.S. Patent Application Publication No. 2015/0149208 and Japanese Laid-open Patent Publication No. 2016-71639.
According to an aspect of the embodiments, a non-transitory computer-readable recording medium stores an information processing program for causing a computer to execute processing Including: accepting first encrypted data obtained by encrypting first data by indexing that uses a first key, an electronic signature added to the first data, and proof information to prove that the electronic signature is Information capable of verifying authenticity of original data of the first encrypted data; accepting second encrypted data obtained by encrypting second data by Indexing that uses a second key; verifying validity of the electronic signature by using the proof Information; acquiring a first calculation result calculated from the first key and the second key by using a predetermined function from a management device that manages the first key and the second key; and collating the acquired first calculation result with a second calculation result calculated from the first encrypted data and the second encrypted data by using the predetermined function.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
For example, there is a technology of aggregating medical records in a manner that protects identity of a patient. Furthermore, there is a technology of generating concealed media information in which at least a part of a feature portion of a visitor is concealed, and collating the concealed media Information with accumulated registered concealed media Information while keeping them concealed to generate a collation result. The registered concealed media information is information in which at least a part of a feature portion of an unspecified person is concealed in media Information in which the person is recorded.
However, it is difficult to secure authenticity of data regarding users to be matched while concealing content of the data from a third party.
In one aspect, an object of the disclosure is to secure authenticity of data while concealing content of the data from a third party.
Hereinafter, embodiments of an Information processing program, an Information processing method, and an information processing device according to the present invention will be described in detail with reference to the drawings.
Original plain text (original data) of the encrypted pieces of data is data regarding users to be matched, and is, for example, attribute information or requirement information. The attribute information is information indicating an attribute of a user. The requirement Information is Information Indicating a condition (interest or the like) for an attribute requested by a user.
In a matching system, for example, matching between users is performed by matching attribute information submitted by a user with an Interest in an attribute submitted by another user. Taking recruitment matching as an example, matching is performed by matching attribute information (age, an educational background, a work history, and the like) submitted by a student with employment conditions (age, an educational background, a work history, and the like) submitted by a company.
However, in the existing matching system, correctness of attribute Information to be submitted by a user may not be strictly requested, or even when the correctness is requested, check of the correctness may not be automated, and it is difficult to secure authenticity of the attribute information. For example, in the recruitment matching, although the student submits his/her own educational background, grade, and the like, proof of correctness thereof may often not be made obligatory, and a mechanism that automatically checks the correctness may often not be prepared.
Furthermore, in the matching system, a user may submit his/her personal data to an operator of the matching system without any processing. In this case, a large amount of personal data is accumulated in the operator, and the user has a concern about privacy or the operator considers a risk at the time of leakage.
Here, regarding the problem of authenticity of the attribute Information, the authenticity may be verified by adding a signature to the attribute information submitted by the user by a trusted third party using various existing electronic signature methods. However, the problem of the privacy may not be solved only by the electronic signature method.
On the other hand, regarding the problem of the privacy, by using an existing technology such as Relational Hash (Non-Patent Document 1), it is possible to cause a third party to perform matching while concealing the attribute information and the interest in the attribute submitted by the users. However, the problem of the authenticity of the attribute Information may not be solved only by the Relational Hash method.
The Relational Hash is a method of hashing two types of plain text satisfying a certain relationship (for example, a relationship of equal) by using a certain key, and is a technology that allows a third party who knows the key to know whether the two types of plain text satisfy the relationship without knowing original plain text. Note that, regarding the Relational Hash, for example, the following Non-Patent Document 1 may be referred to.
Here, the problem of the authenticity of the attribute Information will be described by taking a case where the Relational Hash method is applied to the recruitment matching as an example. First, a trusted third party prepares one key, and the key is shared between users. A student hashes attribute information (educational background) to be submitted by using a hash function Hash1. A company hashes a recruitment requirement (educational background) that is an interest in an attribute by using a hash function Hash2.
Then, a matching business operator performs matching without knowing original plain text of hash values by using the same key provided from the trusted third party. At this time, the matching business operator may detect that the two character strings (hash values) are originally hashes of equal plain text or originally hashes of different types of plain text, but may not know content of the original plain text. Therefore, privacy related to the educational background of the student is protected.
As described above, in the Relational Hash method, while the problem of the privacy is solved, the problem of the authenticity of the attribute information may not be solved. Furthermore, there is an electronic signature technology as a technology of securing correctness of the attribute Information, but a signature for plain text is not a signature for a hash value, and thus may not be directly applied.
For example, in the case where the Relational Hash method is applied to recruitment matching, it is assumed that an electronic signature is added to the attribute Information (educational background) of the student, and authenticity of the attribute Information (educational background) is secured. However, since the electronic signature is not valid for the hash value of the attribute Information (educational background), the authenticity may not be secured.
Note that it is conceivable to request to add a signature again to the hash value of the attribute Information (educational background) using the existing electronic signature technology. For example, it is assumed that the attribute Information (educational background) is a name of a graduated university of the student, and the electronic signature added to the attribute Information is a signature of the graduated university. In this case, a method is conceivable in which the signature of the graduated university is added also to a hash value of the attribute Information (educational background).
However, in this method, the university side issues the signature to the hash value. Therefore, the university side needs to understand which plain text hash value the hash value is. However, hashing in the Relational Hash is a probabilistic algorithm.
Thus, for example, even when plain text m, a hash value H, and the hash function Hash1 are presented to the university side, it is difficult for the university side to confirm that “the hash value H is obtained by hashing the plain text m by the hash function Hash1”. Moreover, since this method also requires the university that issues the signature to develop a new application, and the like, there is a possibility that an operation cost of the matching system increases.
Thus, in the present embodiment, an information processing method of securing authenticity of data regarding users to be matched while concealing content of the data from a third party will be described. Hereinafter, processing examples ((1) to (5) below) of the information processing device 101 will be described.
The first key k1 is a key used for encryption, is generated by the first user 103, and is managed in a management device 102. The electronic signature 112 is a signature added to the first data 110, and is, for example, Information capable of verifying authenticity of the first data 110 using a public key of a signer.
The proof Information 113 is Information for proving that the electronic signature 112 is information capable of verifying authenticity of the original data of the first encrypted data 111. The proof Information 113 includes, for example, zero-knowledge proof text for proving that the electronic signature 112 is Information capable of verifying the authenticity of the original data of the first encrypted data 111 using the public key of the signer. The zero-knowledge proof is a method of proving the fact that one knows confidential Information without disclosing the confidential information itself to a verifier.
Specifically, for example, the information processing device 101 verifies the validity of the electronic signature 112 by proving the zero-knowledge proof text included in the proof Information 113 using the public key, the electronic signature 112, and the first encrypted data 111. For example, the public key may be Included in the proof information 113, or may be acquired from the signer of the electronic signature 112.
As described above, according to the information processing device 101, it is possible to secure authenticity of data regarding users to be matched while concealing content of the data from a third party. For example, by using encryption by Indexing for concealing the first data 110, the first encrypted data 111 may be simplified to generate the proof Information 113 such as the zero-knowledge proof text, and the authenticity of the first data 110 added with the signature may be secured. Moreover, since an approach of also adding a signature to the first encrypted data 111 is not taken, a procedure such as requesting the signer to further issue a signature does not have to be performed. Furthermore, for example, by using encryption by Indexing and the bi-homomorphism of pairing, it is possible to perform matching between the users while concealing content of the first data 110 and the second data 120 for the first user 103 and the second user 104 from a third party (for example, a matching business operator).
Next, a system configuration example of an information processing system 200 according to the first embodiment will be described. The information processing system 200 is applied to, for example, a matching system such as recruitment matching, resource matching, a free market, and a matching app.
In the following description, a case where the information processing device 101 illustrated in
Here, the matching device 201 is a computer that performs matching between encrypted pieces of data. The matching device 201 is, for example, a server of a business operator (matching business operator) that provides a matching system.
The key management server 202 is a computer that includes a key storage database (DB) 220 and manages keys for encrypting data. The keys are generated in, for example, the client terminals C1 to Cn. The key management server 202 is, for example, a server of a trusted third party other than a party Involved in matching (a user or the matching business operator).
Note that content stored in the key storage DB 220 will be described later with reference to
The client terminals C1 to Cn are computers that are used by users of the Information processing system 200. The client terminals C1 to Cn are, for example, personal computers (PCs), tablet PCs, smartphones, or the like. Note that the first user 103 and the second user 104 illustrated in
In the following description, an optional client terminal among the client terminals C1 to Cn may be referred to as a “client terminal Ci” (i=1, 2, . . . , n).
Next, a hardware configuration example of the matching device 201, the key management server 202, and the client terminal Ci will be described with reference to
Here, the CPU 301 performs overall control of the matching device 201 or the like. The CPU 301 may include a plurality of cores. The memory 302 Includes, for example, a read only memory (ROM), a random access memory (RAM), a flash ROM, and the like. Specifically, for example, the flash ROM stores OS programs, the ROM stores application programs, and the RAM is used as a work area for the CPU 301. The program stored in the memory 302 is loaded to the CPU 301 to cause the CPU 301 to execute coded processing.
The disk drive 303 controls reading and writing of data from and into the disk 304, under the control of the CPU 301. The disk 304 stores data written under the control of the disk drive 303. As the disk 304, for example, a magnetic disk, an optical disk, or the like is exemplified.
The communication I/F 305 is coupled to the network 210 via a communication line, and is coupled to an external computer through the network 210. Additionally, the communication I/F 305 manages an interface between the network 210 and the inside of the device, and controls input and output of data from an external computer. As the communication I/F 305, for example, a modem, a LAN adapter, or the like may be adopted.
The portable recording medium I/F 306 controls reading and writing of data from and into the portable recording medium 307, under the control of the CPU 301. The portable recording medium 307 stores data written under the control of the portable recording medium I/F 306. As the portable recording medium 307, for example, a compact disc (CD)-ROM, a digital versatile disk (DVD), a universal serial bus (USB) memory, or the like is exemplified.
Note that the matching device 201 or the like may include, for example, an input device, a display, or the like, as well as the components described above. Furthermore, the matching device 201 or the like does not have to include, for example, the portable recording medium I/F 306 and the portable recording medium 307 among the components described above.
Next, content stored in the key storage DB 220 included in the key management server 202 will be described. The key storage DB 220 is implemented by, for example, a storage device such as the memory 302 and the disk 304 of the key management server 202 illustrated in
Here, the ID is an Identifier that uniquely identifies a user. The key is a key corresponding to a user. The key is generated in the client terminal Ci and managed in the key management server 202. For example, the key management information 400-1 indicates a key Key1 of a user U1.
Next, a functional configuration example of the information processing system 200 will be described with reference to
The setup processing unit 501 sets information regarding generation of a key. The key is a key for encrypting data. Specifically, for example, the setup processing unit 501 sets a prime number p. Furthermore, the setup processing unit 501 sets a set U of domains and sets TABLE (dictionary-type correspondence TABLE).
Here, the domain is, for example, an attribute provided from a user, or a space and a range that an Interest in an attribute may take. In the dictionary-type correspondence TABLE, an element of the set U of the domains is set as a key, and an element of a set [p]={0, . . . , p-1} is set as a value. Note that, when this TABLE Is Identified with mapping, TABLE: U→[p] is designed to be injective mapping.
Furthermore, the setup processing unit 501 sets information regarding pairing calculation. Specifically, for example, the setup processing unit 501 sets a group G of prime number orders q and a group H of prime number orders p (q>p). Furthermore, the setup processing unit 501 sets pairing e. Here, the pairing e is a pairing function that performs calculation having a bi-homomorphism.
Here, it is assumed that the pairing e is “e: G×G→H”. The pairing e: G×G→H is mapping that satisfies e(g1g2, h1)=e(g1, h1)e(g2, h1) and e(g1, h1h2)=e(g1, h1)e(g1, h2) for optional g1, g2ϵG, h1, h2ϵH (bi-homomorphism).
The setup processing unit 501 discloses the set U of the domains, the TABLE, and the group G of the prime number orders q to the entire information processing system 200.
The acceptance unit 502 accepts a key registration request from the client terminal Ci. Here, the key registration request is a request to register a key. The key registration request includes, for example, an ID and a key. The ID is an identifier that uniquely identifies a user. The key is a key generated in the client terminal Ci. Superficially, for example, by receiving the key registration request from the client terminal Ci, the received key registration request is accepted.
The registration unit 503 registers a key in association with a user. Specifically, for example, in a case where a key registration request is accepted, the registration unit 503 registers a key Included in the key registration request in the key storage DB 220 illustrated in
Furthermore, the acceptance unit 502 accepts a pairing calculation request from the matching device 201. Here, the pairing calculation request is a request for a result of pairing calculation. The pairing calculation request includes, for example, a combination of IDs of two users to be paired (for example, U1 and U2).
The pairing calculation unit 504 performs pairing calculation. Specifically, for example, in a case where a pairing calculation request is accepted, the pairing calculation unit 504 acquires a key corresponding to each ID Included in the pairing calculation request from the key storage DB 220. Next, the pairing calculation unit 504 inputs the acquired key corresponding to each ID to the pairing e and performs calculation, thereby acquiring a calculation result of the pairing e.
Then, the pairing calculation unit 504 transmits the calculation result of the pairing e to the matching device 201. At this time, the pairing calculation unit 504 transmits the pairing e to the matching device 201 together with the calculation result of the pairing e. Note that the pairing e may have been shared in advance with a pairing business operator (matching device 201).
Next, a functional configuration example of the client terminal Ci will be described with reference to
The key generation unit 601 generates a key. Specifically, for example, the key generation unit 601 generates a key by selecting one element of the group G of the prime number orders q disclosed by the key management server 202. Then, the key generation unit 601 transmits a key registration request including an ID corresponding to the own terminal and the generated key to the key management server 202. The ID corresponding to the own terminal is an ID of a user who uses the client terminal Ci.
As a result, the user of the client terminal Ci may generate his/her own key and upload (register) the key to the key management server 202.
The encryption unit 602 encrypts data to be matched using a generated key. The data to be matched is, for example, attribute Information or requirement information. The attribute information is information indicating an attribute of a user. The attribute of the user is, for example, age, an educational background, a work history, gender, an achievement, or the like.
The requirement Information is Information Indicating a condition for an attribute of another user requested by a user. The condition for the attribute of the another user corresponds to an Interest in the attribute of the another user. Examples of the condition for the attribute of the another user include an employment condition (age, an educational background, a work history, gender, an achievement, or the like) requested by a company (user) to a job applicant (another user).
In the following description, among pieces of data to be matched, one piece of data may be referred to as “attribute Information m” and the other piece of data may be referred to as “requirement Information n”. Furthermore, a key of a user who provides the attribute Information m (attribute Information provider) may be referred to as “g”, and a key of a user who provides the requirement Information n (requirement Information provider) may be referred to as “h”.
Specifically, for example, the encryption unit 602 encrypts the attribute information m by Indexing using the key g. More specifically, for example, the encryption unit 602 creates an attribute value m by encoding the attribute information m using the TABLE disclosed by the key management server 202. Then, the encryption unit 602 generates encrypted data m′ by calculating the m-th power of the key g. For the encrypted data m′, “m′=gm” holds.
Furthermore, the encryption unit 602 encrypts the requirement information n by Indexing using the key h. More specifically, for example, the encryption unit 602 creates a requirement value n by encoding the requirement information n using the TABLE disclosed by the key management server 202. Then, the encryption unit 602 generates encrypted data n′ by calculating the (1/n)-th power of the key h. For the encrypted data n′, “n′=h1/n” holds.
Here, encryption by conversion of m→gm and conversion of n h1/n will be described. This m→gm means that, when the plain text m encoded into numbers is encrypted, a finite cyclic group G and a generation source g thereof are fixed, and m is converted into m′=gm. As a conversion example, a method of fixing a (large) prime number p and an Integer g ϵ{1, . . . , p-1}, encoding a message as m ϵ{0, . . . , p-1}, and then converting m into m′=gm(mod p) is exemplified.
As the reason why this conversion is encryption, it is exemplified that it is difficult to derive the original plain text m even when g and m′ are disclosed since it is well known that it is difficult to efficiently calculate “m” from Information “g and m” when the plain text m is converted into m′=gm. Furthermore, this conversion is simplified compared to hashing with the conventional Relational Hash while satisfying a nature of the encryption. This simplification works to enable generation of a ZKP of an electronic signature a described later.
The proof generation unit 603 generates proof Information in a case where the electronic signature σ is added to data to be matched. Here, the electronic signature σ is Information capable of verifying authenticity of the data by a public key pk of a signer. The electronic signature σ is issued by a trusted third party. For example, in a case where the attribute Information m Indicates a “name of a graduated university”, the electronic signature σ is issued by the graduated university.
The electronic signature σ is added to, for example, the attribute information m. In the following description, a case is assumed where the electronic signature σ is added to the attribute Information m.
The proof information is information for proving that the electronic signature σ is Information capable of verifying authenticity of the original data (attribute Information m that is the original plain text) of the encrypted data m′. Specifically, for example, the proof Information Includes zero-knowledge proof text Π for proving that the electronic signature σ is information capable of verifying the authenticity of the original data of the encrypted data m′ using the public key pk of the signer.
The zero-knowledge proof text Π indicates that “σ is the signature of the original plain text of m′ verifiable with pk” when the electronic signature a verifiable with the public key pk of the third party is given to the original attribute value m (attribute Information m) when the attribute value m is encrypted to m′. More specifically, the zero-knowledge proof text Π is information for giving a zero-knowledge proof of knowledge of “m′=g{circumflex over ( )}m holds and m is such that a is the signature verifiable with the public key pk for m”.
The zero-knowledge proof text Π does not disclose the attribute Information m, but discloses m′=g{circumflex over ( )}m, σ, and pk, and makes it possible to prove that “m′=g{circumflex over ( )}m holds and a is the signature of m verifiable with the public key pk for m”. Note that a method of generating the zero-knowledge proof text Π may vary depending on, for example, a signature format.
In the following description, the zero-knowledge proof text Π may be referred to as a “zero-knowledge proof (ZKP) of the electronic signature σ”.
The communication unit 604 transmits a matching request including encrypted data to the matching device 201. Here, the matching request is to request matching using the encrypted data. The encrypted data is obtained by encrypting data to be matched.
For example, it is assumed that the data to be matched is the “attribute Information m” and the electronic signature σ is added to the attribute information m. In this case, the communication unit 604 transmits a matching request including the encrypted data m′, the public key pk, the electronic signature σ, and the zero-knowledge proof text Π (ZKP of the electronic signature σ) to the matching device 201. Note that, for example, the matching device 201 may acquire the public key pk from the signer of the electronic signature σ.
Furthermore, it is assumed that the data to be matched is the “requirement information n”. In this case, the communication unit 604 transmits a matching request including the encrypted data n′ to the matching device 201.
Furthermore, the communication unit 604 may receive a matching result from the matching device 201. The matching result is a response to the matching request. The matching result may be, for example, Information Indicating matching success or matching failure. Furthermore, in the case of matching success, the matching result may include information for specifying a matching partner.
Next, a functional configuration example of the matching device 201 will be described with reference to
In the following description, a client terminal used by a user who provides the attribute Information m (attribute Information provider) may be referred to as the “client terminal Ci”. Furthermore, a client terminal used by a user who provides the requirement information n (requirement information provider) may be referred to as a “client terminal Cj” (j≠i, j=1, 2, . . . , n).
The acceptance unit 701 accepts a first matching request from the client terminal Ci. Superficially, for example, by receiving the first matching request from the client terminal Ci, the acceptance unit 701 accepts the received first matching request. Here, the first matching request includes, for example, the encrypted data m′, the public key pk, the electronic signature σ, and the zero-knowledge proof text Π (ZKP of the electronic signature σ).
The encrypted data m′ is information obtained by encrypting the attribute Information m (first data) to be matched by Indexing using the key g (first key) of the user (attribute Information provider), and “m′=gm” holds. The public key pk is a public key of a signer of the electronic signature σ. Note that the matching device 201 may directly acquire the public key pk from the signer of the electronic signature σ.
The electronic signature σ is a signature added to the attribute information m, and is information capable of verifying authenticity of the attribute information m using the public key pk. The zero-knowledge proof text Π is a ZKP of the electronic signature σ, and is proof information for proving that the electronic signature σ is Information capable of verifying authenticity of the original data (attribute Information m that is the original plain text) of the encrypted data m′.
Furthermore, the acceptance unit 701 accepts a second matching request from the client terminal Cj. Specifically, for example, by receiving the second matching request from the client terminal Cj, the acceptance unit 701 accepts the received second matching request.
Here, the second matching request includes, for example, the encrypted data n′. The encrypted data n′ is information obtained by encrypting the requirement information n (second data) to be matched by Indexing using the key h (second key) of the user (requirement Information provider), and “n′=h1/n” holds.
The verification unit 702 verifies validity of the electronic signature v using proof information Included in a first matching request in a case where the electronic signature σ is included in the first matching request. Specifically, for example, the verification unit 702 verifies the validity of the electronic signature σ by proving the zero-knowledge proof text Π (ZKP of the electronic signature σ) using the public key pk, the electronic signature σ, and the encrypted data m′.
In a case where the validity of the electronic signature σ is verified using the zero-knowledge proof text Π, it may be said that authenticity of the encrypted data m′ is secured, and eventually, authenticity of the original data (attribute Information m) of the encrypted data m′ is secured. Note that a method of proving the zero-knowledge proof text Π using pk, σ, and m′ may vary depending on a signature format.
The acquisition unit 703 acquires, from the key management server 202, a first calculation result calculated from the key g (first key) and the key h (second key) using a predetermined function. Here, the predetermined function is, for example, a pairing function (pairing e) that performs calculation having a bi-homomorphism.
Specifically, for example, in a case where a first matching request and a second matching request are accepted, the acquisition unit 703 transmits a pairing calculation request to the key management server 202. The pairing calculation request includes an ID of a user (attribute Information provider) and an ID of a user (requirement information provider).
Then, the acquisition unit 703 acquires a calculation result e(g, h) by receiving the pairing e and the calculation result e(g, h) from the key management server 202. The calculation result e(g, h) is a calculation result (first calculation result) of the pairing e obtained by Inputting the keys g and h to the pairing e. The key g is a key corresponding to the ID of the user (attribute Information provider). The key h is a key corresponding to the ID of the user (requirement information provider). Note that the acquisition unit 703 may acquire the pairing e from the key management server 202 in advance.
The collation unit 704 collates, in a case where validity of the electronic signature σ is verified using proof information, an acquired first calculation result with a second calculation result calculated from the encrypted data m′ and the encrypted data n′ using a predetermined function. The predetermined function is, for example, a pairing function (pairing e) provided from the key management server 202.
Specifically, for example, the collation unit 704 calculates a calculation result e(gm, h1/n) by Inputting the encrypted data m′ and n′ to the pairing e. The calculation result e(gm, h1/n) corresponds to the second calculation result. Then, the collation unit 704 collates the calculation result e(g, h) with the calculation result e(gm, h1/n).
Here, in a case where the calculation result e(g, h) and the calculation result e(gm, h1/n) match, it may be said that the attribute Information m and the requirement information n are equal. This collation is Implemented by enabling matching determination of the original message converted by “m→gm” by pairing mapping using the bi-homomorphism of the pairing e. Specifically, whether the attribute information m and the requirement Information n are equal may be confirmed using the fact that the calculation result of the pairing e is “e(gm, h1/n)=e(g, h)m/n” by setting one conversion as “m→gm” and the other conversion as “n→h1/n”.
The output unit 705 outputs a collation result obtained by collation. Examples of an output format of the output unit 705 include storage in a storage device such as the memory 302 or the disk 304 of the matching device 201, transmission to another computer (for example, the client terminals Ci and Cj) by the communication I/F 305, display on a display (not illustrated), print output to a printer (not illustrated), and the like.
Superficially, for example, in a case where the collation result is “match”, the output unit 705 may transmit a matching result Indicating matching success to the client terminals Ci and Cj. This matching result may include, for example, Information for specifying the users of the client terminals Ci and Cj. Furthermore, in a case where the collation result is “mismatch”, the output unit 705 may transmit a matching result Indicating matching failure to the client terminals Ci and Cj.
Furthermore, in a case where validity of the electronic signature a has not been verified, the output unit 705 may output a verification result Indicating that verification of authenticity of the encrypted data m′ has failed. Specifically, for example, the output unit 705 transmits a matching result including the verification result indicating that the verification of the authenticity of the encrypted data m′ has failed to the client terminal Ci. In this case, the output unit 705 may transmit a matching result Indicating matching failure to the client terminal Cj.
Note that the acquisition unit 703 may acquire the first calculation result from the key management server 202 in a case where the validity of the electronic signature σ is verified using the proof Information. As a result, it is possible to prevent the first calculation result from being acquired from the key management server 202 even though the validity of the electronic signature σ is not verified and the first calculation result and the second calculation result are not collated.
Furthermore, the collation unit 704 may collate the first calculation result with the second calculation result regardless of the verification result of the validity of the electronic signature σ using the proof Information. In this case, the output unit 705 may output a collation result between the first calculation result and the second calculation result together with the verification result of the validity of the electronic signature σ.
Here, an example of matching processing of the matching device 201 will be described with reference to
The business operator 801 (matching device 201) accepts gm and the zero-knowledge proof text Π from the job applicant 802 (client terminal Ci). The encrypted data m′ obtained by encrypting the attribute value m (attribute information m) using the key g of the job applicant 802 is represented by gm. The zero-knowledge proof text Π is a ZKP of the electronic signature σ. The electronic signature σ is valid for the attribute value m (attribute information m). The zero-knowledge proof text Π is valid for gm.
Furthermore, the business operator 801 (matching device 201) accepts h1/n from the company 803 (client terminal Cj). The encrypted data n′ obtained by encrypting the requirement value n (requirement information n) using the key h of the company 803 is represented by h1/n. The requirement information n represents a recruitment requirement.
The business operator 801 (matching device 201) verifies validity of the electronic signature σ using the zero-knowledge proof text Π. In a case where the validity of the electronic signature σ is verified using the zero-knowledge proof text Π, authenticity of gm (encrypted data m′) is secured, and eventually, authenticity of the original data (attribute value m) of gm is secured.
Note that it is also conceivable to generate the ZKP of the signature for the existing Relational Hash. However, since a hash function is complicated, it is not possible to directly apply a conventionally known technology of generating a zero-knowledge proof. More specifically, since it is difficult to write a hash function used in the Relational Hash with an arithmetic circuit independent of input, an existing framework of ZK-SNARKs may not be applied when a zero-knowledge proof is generated. Therefore, when the attribute Information m is concealed, an approach of simplifying the encrypted data using encryption by Indexing in a form such as “m→gm” is effective.
In a case where the validity of the electronic signature σ is verified using the zero-knowledge proof text Π, the business operator 801 (matching device 201) performs matching using the bi-homomorphism of the pairing e without using the keys g and h. Specifically, for example, the business operator 801 (matching device 201) determines whether or not “e(gm, h1/n)=e(g, h)m/n” matches “e(g, h)”. The first calculation result of the pairing e obtained from the key management server 202 is represented by e(g, h). The second calculation result obtained by inputting gm and h1/n to the pairing e is represented by e(gm, h1/n).
As a result, by applying the concept of the pairing mapping, the business operator 801 (matching device 201) may determine whether or not the attribute value m (attribute information m) and the requirement value n (requirement information n) match without decoding the attribute information m and the requirement information n.
Next, an operation example of the information processing system 200 according to the first embodiment will be described with reference to
First, the job applicant A (client terminal Ci) generates the key g, and registers the key g in the key management server 202. Furthermore, the company B (client terminal Cj) generates the key h, and registers the key h in the key management server 202. The keys g and h are not disclosed to other than the key management server 202. The key management server 202 prepares pairing mapping.
The job applicant A (client terminal Ci) converts the attribute information m into gm using the key g, and transmits gm to the business operator C (matching device 201). It is possible to regard gm as ciphertext of the attribute Information m. Here, a case is assumed where the attribute information m is “educational background: graduate of X university (=m)”, and the attribute information m is converted into encrypted data of “educational background: F32R3(=gm)”.
Moreover, in a case where the electronic signature σ by a third party (X university) is added to the attribute information m, the job applicant A (client terminal Ci) generates the zero-knowledge proof text Π indicating that the electronic signature σ is valid for the plain text m of the encrypted data gm, and transmits the zero-knowledge proof text Π to the business operator C (matching device 201). As a result, the job applicant A (client terminal Ci) guarantees authenticity of the encrypted data gm submitted to the business operator C.
On the other hand, the company B (client terminal Cj) converts the requirement Information n into h1/n using the key h, and transmits h1/n to the business operator C (matching device 201). It is possible to regard h1/n as ciphertext of the requirement information n. Unlike the job applicant side, the company side may easily perform subsequent matching determination by pairing by taking reciprocal power at the time of encryption using the key h.
Here, a case is assumed where the requirement information n is “requested educational background: graduate of X university, graduate of Y university, . . . (=n1, n2, . . . )” and the requirement information n is converted into encrypted data of “requested educational background: 4n4Gg, a3QCs, . . . (=h1/n, h1/n2, . . . )”.
The business operator C (matching device 201) accepts the encrypted data gm and the zero-knowledge proof text Π from the job applicant A (client terminal Ci). Furthermore, the business operator C (matching device 201) accepts the encrypted data h1/n from the company B (client terminal Cj). As a result, the encrypted data gm of the attribute Information m and the zero-knowledge proof text Π regarding validity of the electronic signature σ added to the attribute information m are given from the job applicant Ai to the business operator C. Furthermore, the encrypted data h1/n of the requirement information n is given from the company B to the business operator C.
The business operator C (matching device 201) receives, from the key management server 202, not the keys g and h of the job applicant A and the company B, but various types of Information regarding pairing calculation (pairing e, calculation result eAB=(g, h)). Then, in a case where the validity of the electronic signature σ is verified using the zero-knowledge proof text Π, the business operator C (matching device 201) performs matching using the bi-homomorphism of the pairing e without decoding the plain text from the encrypted data gm and h1/n.
Here, the business operator C (matching device 201) determines whether eAB matches e(“F32R3”, “4n4Gg”), e(“F32R3”, “a3QCs”), . . . , and determines that the requirement is matched (matching success) when an equal sign is established.
Note that e(“F32R3”, “4n4Gg”) is a calculation result obtained by inputting “F32R3(=gm)” and “4n4Gg (=h1/n1)” to the pairing e. Furthermore, e(“F32R3”, “a3QCs”) is a calculation result obtained by Inputting “F32R3(=gm)” and “a3QCs (=h1/n2)” to the pairing e.
As described above, according to the information processing system 200, matching in which privacy is protected may be performed by encrypting data (m, n) to be matched and determining whether original data is equal without decoding the ciphertext. Furthermore, according to the information processing system 200, by verifying the zero-knowledge proof text Π, the authenticity of the attribute Information m submitted by the job applicant Ai may be verified without decoding the plain text from the ciphertext. Note that the requirement information n indicates an interest in an attribute of the company B, and authenticity thereof does not have to be secured. Thus, no signature is added to the requirement information n.
Next, various processing procedures of the Information processing system 200 will be described with reference to
First, a setup processing procedure of the key management server 202 will be described.
Then, the key management server 202 creates the TABLE in which an element of the set U of the domains is set as a key, and an element of the set [p]={0, . . . , p-1} is set as a value (step S1003). Next, the key management server 202 sets the group G of the prime number orders q and the group H of the prime number orders p (q>p) (step S1004).
Next, the key management server 202 sets the pairing e “e: G×G→H” (step S1005). Then, the key management server 202 discloses the set U of the domains, the TABLE, and the group G of the prime number orders q to the entire information processing system 200 (step S1006), and ends a series of processing according to this flowchart.
As a result, the key management server 202 may prepare information regarding key generation and information regarding pairing calculation.
Next, a key generation/update processing procedure of the client terminal Ci will be described.
Then, the client terminal Ci transmits a key registration request including an ID corresponding to the own terminal and the generated key to the key management server 202 (step S1102), and ends a series of processing according to this flowchart.
As a result, the client terminal Ci may generate a key of a user of the own terminal, and upload (register) the key to the key management server 202.
Next, a key registration processing procedure of the key management server 202 will be described.
Then, in a case where the key registration request has been received from the client terminal Ci (step S1201: Yes), the key management server 202 registers the key included in the key registration request in the key storage DB 220 in association with the ID included in the key registration request (step S1202), and ends a series of processing according to this flowchart.
As a result, the key management server 202 may register and manage the key of each user generated in the client terminal Ci in the key storage DB 220. Note that, in a case where a key corresponding to the ID Included in the key registration request has already been registered in step S1202, the key management server 202 overwrites the key with the key Included in the key registration request.
Next, a matching processing procedure of the information processing system 200 will be described. Note that it is assumed that a client terminal of a user (attribute Information provider) is the “client terminal a”, and a client terminal of a user (requirement information provider) is “client terminal Cj”.
Then, the client terminal Ci encrypts the attribute value m to gm using the key g to generate the encrypted data m′ (m′=gm) (step S1302). Next, the client terminal Ci executes proof generation processing (step S1303). Note that a specific processing procedure of the proof generation processing will be described later with reference to
Here, a case is assumed where the zero-knowledge proof text Π of the electronic signature σ added to the attribute Information m (attribute value m) is generated. Then, the client terminal Ci transmits a matching request including the encrypted data m′, the public key pk, the electronic signature σ, and the zero-knowledge proof text Π to the matching device 201 (step S1304).
When the matching request is received from the client terminal a (step S1305), the matching device 201 executes proof verification processing for the zero-knowledge proof text Π included in the matching request (step S1306). Note that a specific processing procedure of the proof verification processing will be described later with reference to
The client terminal Cj encodes the requirement information n using the TABLE disclosed by the key management server 202 to convert the requirement information n into the requirement value n (step S1307). Next, the client terminal Cj encrypts the requirement value n to h1/n using the key h to generate the encrypted data n′ (n′=h1/n) (step S1308).
Then, the client terminal Cj transmits a matching request including the encrypted data n′ to the matching device 201 (step S1309). Note that the processing of steps S1307 to S1309 may be executed before the processing of steps S1301 to S1304, or may be executed in parallel with the processing of steps S1301 to S1304.
In the sequence diagram of
When the pairing calculation request is received from the matching device 201, the key management server 202 acquires the keys g and h corresponding to the respective IDs included in the pairing calculation request from the key storage DB 220 (step S1403). Next, the key management server 202 inputs the acquired keys g and h to the pairing e to calculate the calculation result e(g, h) of the pairing e (step S1404).
Then, the key management server 202 transmits the pairing e and the calculation result e(g, h) of the pairing e to the matching device 201 (step S1405). When the pairing e and the calculation result e(g, h) of the pairing e are received, the matching device 201 executes collation processing (step S1406). Note that a specific processing procedure of the collation processing will be described later with reference to
Then, the matching device 201 transmits a matching result corresponding to a collation result to the client terminals Ci and Cj (step S1407), and ends a series of processing according to this sequence diagram.
Next, the specific processing procedure of the proof generation processing of the client terminal Ci in step S1303 Indicated in
Here, in a case where the electronic signature σ is not added to the attribute information m (step S1501: No), the client terminal Ci returns to the step in which the proof generation processing has been called. On the other hand, in a case where the electronic signature σ is added to the attribute information m (step S1501: Yes), the client terminal Ci generates the zero-knowledge proof text Π of the electronic signature σ (step S1502), and returns to the step in which the proof generation processing has been called.
As a result, the client terminal Ci may generate the proof Information for proving that the electronic signature σ is Information capable of verifying authenticity of the original data of the encrypted data m′ using the public key pk of the signer.
Next, the specific processing procedure of the proof verification processing of the matching device 201 in step S1306 Indicated in
Then, the matching device 201 determines whether or not the verification of the validity of the electronic signature σ has succeeded (step S1602). Here, in a case where the verification of the validity of the electronic signature σ has succeeded (step S1602: Yes), the matching device 201 returns to the step in which the proof verification processing has been called.
On the other hand, in a case where the verification of the validity of the electronic signature σ has failed (step S1602: No), the matching device 201 transmits a verification result Indicating that verification of authenticity of the encrypted data m′ has failed to the client terminal Ci (step S1603), and ends a series of processing according to this flowchart.
As a result, by verifying the validity of the electronic signature a using the zero-knowledge proof text Π, the matching device 201 may secure the authenticity of gm (encrypted data m′), and eventually secure the authenticity of the original data (attribute Information m) of gm.
Next, the specific processing procedure of the collation processing of the matching device 201 in step S1406 Indicated in
Next, the matching device 201 determines whether or not the calculation result e(g, h) received from the key management server 202 and the calculated calculation result e(gm, h1/n) match using the bi-homomorphism of the pairing e (step S1703).
Here, in a case where the calculation result e(g, h) and the calculation result e(gm, h1/n) match (step S1703: Yes), the matching device 201 determines that matching has succeeded (step S1704), and returns to the step in which the collation processing has been called.
On the other hand, in a case where the calculation result e(g, h) and the calculation result e(gm, h1/n) do not match (step S1703: No), the matching device 201 determines that matching has failed (step S1705), and returns to the step in which the collation processing has been called.
As a result, the matching device 201 may confirm whether the attribute information m and the requirement Information n are equal using the bi-homomorphism of the pairing e.
As described above, according to the matching device 201 according to the first embodiment, the encrypted data m′ (first encrypted data) obtained by encrypting the attribute Information m (first data) by Indexing using the key g (first key), the electronic signature σ added to the attribute Information m, and the proof Information may be accepted. The proof information is Information for proving that the electronic signature σ is Information capable of verifying authenticity of the original data (original plain text) of the encrypted data m′. Then, according to the matching device 201, validity of the electronic signature σ may be verified using the proof Information. Furthermore, according to the matching device 201, the encrypted data n′ (second encrypted data) obtained by encrypting the requirement information n (second data) by Indexing using the key h (second key) may be accepted. Furthermore, according to the matching device 201, the calculation result e(g, h) calculated from the key g and the key h using the pairing e may be acquired from the key management server 202. The pairing e is a pairing function that performs calculation having a bi-homomorphism. Then, according to the matching device 201, the acquired calculation result e(g, h) and the calculation result (gm, h1/n) calculated from the encrypted data m′ and the encrypted data n′ using the pairing e may be collated.
As a result, the matching device 201 may secure authenticity of data regarding users to be matched (attribute information provider and requirement Information provider) from a third party (matching business operator) while concealing content of the data. For example, by using encryption by Indexing in the form such as “m→gm” when the attribute information m is concealed, the encrypted data m′ may be simplified to generate the proof Information, and the authenticity of the attribute Information m added with the signature may be secured. Furthermore, by using the encryption by Indexing and the bi-homomorphism of the pairing e, matching between users may be performed while concealing content of the attribute Information m and the requirement information n regarding each user from a third party. For example, in recruitment matching, matching between a job applicant (individual) and a company (corporation) may be performed by collating an attribute (age, educational background, or the like) of the job applicant with an Interest in an attribute (age, educational background, or the like) of the company.
Furthermore, according to the matching device 201, in a case where the validity of the electronic signature σ is verified, the calculation result e(g, h) and the calculation result (gm, h1/n) may be collated.
As a result, in a case where the authenticity of the attribute Information m is secured, the matching device 201 may collate the calculation result e(g, h) with the calculation result (gm, h1/n) to perform matching between the users.
Furthermore, according to the matching device 201, the zero-knowledge proof text Π (ZKP of the electronic signature σ) for proving that the electronic signature σ is Information capable of verifying authenticity of the original data of the encrypted data m′ using the public key pk of the signer may be accepted as the proof Information. Then, according to the matching device 201, the validity of the electronic signature σ may be verified by proving the zero-knowledge proof text Π using the public key pk, the electronic signature σ, and the encrypted data m′.
As a result, by verifying the validity of the electronic signature a using the zero-knowledge proof, the matching device 201 may secure the authenticity of the encrypted data m′, and eventually secure the authenticity of the attribute information m that is the original plain text. For example, when it is possible to prepare the zero-knowledge proof that is also effective for the ciphertext (encrypted data m′) and is verifiable with the public key pk originally used for the verification, the matching business operator may confirm that the ciphertext is also authorized by a third party.
Furthermore, according to the matching device 201, a collation result obtained by the collation may be output.
As a result, the matching device 201 may notify the users to be matched (attribute Information provider and requirement Information provider) and the matching business operator of success or failure of the matching.
Furthermore, according to the matching device 201, in a case where the validity of the electronic signature σ is verified using the proof Information (zero-knowledge proof text n), the calculation result e(g, h) may be acquired from the key management server 202.
As a result, for example, when the validity of the electronic signature σ is not verified and the calculation results are not collated, the matching device 201 may suppress a processing load without performing the processing of acquiring the calculation result e(g, h) from the key management server 202.
Furthermore, according to the matching device 201, in a case where the validity of the electronic signature σ has not been verified using the proof Information (zero-knowledge proof text Π), a verification result Indicating that the verification of the authenticity of the encrypted data m′ has failed may be output.
As a result, the matching device 201 may notify the users to be matched (attribute Information provider and requirement Information provider) and the matching business operator that the matching may not be performed since the authenticity of the attribute Information m that is the original plain text of the encrypted data m′ may not be secured.
Next, an example of a case where the Information processing system 200 according to the first embodiment is applied to recruitment matching in which matching between a plurality of job applicants and a plurality of companies is performed will be described.
First, the key management server 202 executes the setup processing (see, for example,
Next, each job applicant Ai (client terminal Ci) executes the key generation/update processing (see, for example,
Here, it is assumed that each job applicant Ai has a plurality of attribute values Xi, and each company Bj has an interest in a plurality of attributes, in other words, a plurality of requirement values Yj. Note that it is assumed that the attribute values Xi and the requirement values Yj are values encoded by the TABLE. Furthermore, it is assumed that each company Bj transmits a threshold sj to a business operator C (matching device 201) as the number of requirements desired to be satisfied by the job applicant.
Hereinafter, an operation example in a case where matching between the job applicant Ai and the company Bj is performed will be described.
First, the job applicant Ai (client terminal Ci) encrypts EXi: =Exp(gi, Xi): ={gim|m ϵXi} and the attribute value using the key gi, and transmits results of the encryption to the business operator C (matching device 201).
Furthermore, the company Bj (client terminal Cj) encrypts FYj: =Exp−1(hj, Yj): ={hj{circumflex over ( )}(dn)|n ϵYj} and the attribute value, and transmits results of the encryption together with the threshold sj to the business operator C (matching device 201). Note that dn=n(p-2)≡1/n(mod p) holds.
Moreover, the key management server 202 transmits εij=e(gi, hj) to the business operator C (matching device 201) in response to a pairing calculation request from the business operator C (matching device 201). Then, the business operator C (matching device 201) calculates I(εi,j, EXi, FYj): =#{(a, b) ϵEXi×FYj|e(a, b)=e(g, h)}.
Here, when it is assumed that dy=y(p-2)≡1/y for x, y ϵ{0, . . . , p-1}, e(gx, h{circumflex over ( )}(dy))=e(g, h) and x=y are the same value. To prove that, e(gx, h{circumflex over ( )}(dy))=e(g, h){circumflex over ( )}(xdy) holds from the bi-homomorphism of e: G×G→H. Since the order of H is p, e(g, h){circumflex over ( )}(xdy)=e(g, h) and xdy≡1(mod p) are the same value, and further, xdy≡1(mod p) and x=y are the same value. This ends the proof.
As a result, it may be said that I(εi,j, EXi, FYj) is the number of matches between the attribute values Xi submitted by the job applicant Ai and the requirement values Yj submitted by the company Bj. Here, it is assumed that cij=1 holds in a case where this value is equal to or greater than the threshold sj, and cij=0 holds in a case where this value is less than the threshold sj. In a case where cij=1 holds, it means that the job applicant Ai satisfies the requirement of the company Bj (matching success).
For example, in the case where cij=1 holds, the business operator C (matching device 201) notifies the job applicant Ai (client terminal Ci) of the company Bj (client terminal Cj) and notifies the company Bj (client terminal Cj) of the job applicant Ai (client terminal Ci). As a result, the job applicant Ai and the company Bj are matched. Note that, since it is difficult to perform inverse image calculation of pairing, it may be said that it is difficult for the business operator C to specify the attribute values Xi of the job applicant Ai.
Furthermore, it is assumed that each job applicant Ai has desired conditions Zi and the number ti of the conditions desired to be satisfied, and there is information Wj in each of the companies Bj. In this case, roles of Ai and Bj may be switched, Xi may be changed to Wj, Yj may be changed to Zi, and sj may be changed to ti, and the matching processing of the Information processing system 200 may be executed. It is assumed that, in a case where the number of matches between the desired conditions of the job applicant Ai and company Information submitted by the company Bj is equal to or greater than a threshold tj, dj=1 holds, and in a case where the number of matches is less than the threshold tj, dij=0 holds. In a case where dij=1 holds, it means that the company Bj satisfies the desired conditions of the job applicant Ai. When cij*dij=1 holds, it means that the job applicant Ai and the company Bj have satisfied each other's requests, and thus the business operator C (matching device 201) may assume that matching has succeeded.
Furthermore, the job applicant Ai (client terminal Ci) may generate a ZKP of the electronic signature σ in a case where the electronic signature σ is added to the attribute value m belonging to the job applicant Ai. Here, a case is assumed where a CL signature is added. The ZKP of the electronic signature σ may be generated with reference to, for example, Non-Patent Document 2 below.
First, in the CL signature, it is assumed that a secret key is p, and a public key is (n, a, b, c). Here, it is assumed that n=pq is an RSA modulus, in other words, prime numbers p and q having the same number of bits. Furthermore, it is assumed that a, b, and c are quadratic residues using n as a modulus, in other words, some x, y, and z exist and satisfy x2=a, y2=b, and z2=c (mod n).
Moreover, for the electronic signature σ for the plain text m, σ=(s, e, v) holds. Here, (s, e, v) is a set of numbers satisfying ve=ambsc. In order to generate the ZKP of the electronic signature σ, the job applicant Ai(client terminal Ci) takes a quadratic residue h using n as a modulus, and further takes an element g of a partial cyclic group <h> of a residue group Z/n generated by h.
Then, the job applicant Ai (client terminal Ci) creates the following information (commitment or the like).
A random number rm and a commitment Cm of m: =gmh{circumflex over ( )}(rm) ϵZ/n
A random number sm and a commitment Cs of s: =gsh{circumflex over ( )}(rs) ϵZ/n
A random number re and a commitment Ce of e; =geh{circumflex over ( )}(re) ϵZ/n
A random number w and a mask Cv of v: =vgwϵZ/n
A random number rw and a commitment Cw of w=gwh{circumflex over ( )}(rw) ϵZ/n
A random number rz and a commitment Cz of z=gzh{circumflex over ( )}(rz) ϵZ/n
ciphertext m′ of attribute value m=gim
After disclosing c, Cm, Cs, Ce, Cv, Cw, Cz, C, and m′ to the business operator C (matching device 201), the job applicant Ai (client terminal Ci) generates the zero-knowledge proof text Π for giving a zero-knowledge proof of knowledge of μ, σ, ε, ω, ζ, ρm, ρs, ρe, ρw, ρz, and ρ satisfying the following conditions.
The job applicant Ai (client terminal Ci) transmits c, Cm, Cs, Ce, Cv, Cw, Cz, C, m′, and Π to the business operator C (matching device 201) as the ZKP of the electronic signature σ. Then, the business operator C (matching device 201) verifies c, Cm, Cs, Ce, Cv, Cw, Cz, C, m′, and Π.
Note that, in a case where the company Bj submits the attribute value and further the CL signature is added to the attribute value, a ZKP of the signature may be similarly generated on the company side.
Next, an information processing system 200 according to a second embodiment will be described. In the second embodiment, attribute information m of a user (attribute information provider) and requirement Information n of a user (requirement Information provider) are encrypted using a random number provided from a trusted third party, thereby enhancing security of the attribute information m and the requirement information n. Note that a part similar to the part of the information processing system 200 of the first embodiment is denoted by the same reference sign, and illustration and description thereof will be omitted.
Here, an operation example of the information processing system 200 according to the second embodiment will be described with reference to
First, when the job applicant Ai and the company B are matched, the business operator C (matching device 201) transmits a request indicating that the matching is to be performed to the key management server 202. When the request is received from the business operator C (matching device 201), the key management server 202 generates a random number r and transmits the random number r to each of the job applicant A (client terminal Ci) and the company B (client terminal Cj). The key management server 202 is an example of the trusted third party. The random number r is, for example, a random number having approximately the same bit length as those of the keys g and h.
The job applicant A (client terminal Ci) generates the key g, and registers the key g in the key management server 202. Furthermore, the company B (client terminal Cj) generates the key h, and registers the key h in the key management server 202. The keys g and h are not disclosed to other than the key management server 202. The key management server 202 prepares pairing mapping.
The job applicant A (client terminal Ci) converts an attribute value m (value obtained by encoding the attribute information m by a TABLE) into gm{circumflex over ( )}r using the key g and a random number r, and transmits gm{circumflex over ( )}r to the business operator C (matching device 201). While the attribute value m is converted into gm in the first embodiment, the attribute value m is converted into gm{circumflex over ( )}r here.
Moreover, in a case where the electronic signature σ is added to the attribute Information m, the job applicant Ai (client terminal Ci) generates zero-knowledge proof text Π indicating that the electronic signature σ is valid for the plain text m of the encrypted data gm{circumflex over ( )}r, and transmits the zero-knowledge proof text Π to the business operator C (matching device 201). As a result, the job applicant Ai (client terminal Ci) guarantees authenticity of the encrypted data gm{circumflex over ( )}r submitted to the business operator C.
On the other hand, the company B (client terminal Cj) converts a requirement value n (value obtained by encoding the requirement Information n by the TABLE) into h1/2{circumflex over ( )}r using the key h and the random number r, and transmits h1/n{circumflex over ( )}r to the business operator C (matching device 201). While the requirement value n is converted into h1/n in the first embodiment, the requirement value n is converted into h1/n{circumflex over ( )}r here.
The business operator C (matching device 201) accepts the encrypted data gm{circumflex over ( )}r and the zero-knowledge proof text Π from the job applicant A (client terminal Ci). Furthermore, the business operator C (matching device 201) accepts the encrypted data h1/n{circumflex over ( )}r from the company B (client terminal Cj). As a result, the encrypted data gm{circumflex over ( )}r of the attribute Information m and the zero-knowledge proof text Π regarding validity of the electronic signature σ added to the attribute information m are given from the job applicant A to the business operator C. Furthermore, the encrypted data h1/n{circumflex over ( )}r of the requirement information n is given from the company B to the business operator C.
The business operator C (matching device 201) receives, from the key management server 202, not the keys g and h of the job applicant A and the company B, but various types of information regarding pairing calculation (pairing e, calculation result e(g, h)). Then, in a case where the validity of the electronic signature σ is verified using the zero-knowledge proof text Π (verification success), the business operator C (matching device 201) performs matching using a bi-homomorphism of the pairing e without decoding the plain text from the encrypted data.
Specifically, the business operator C (matching device 201) determines whether or not e(g, h) and e(gm{circumflex over ( )}r, h1/n{circumflex over ( )}r) match using the encrypted data gm{circumflex over ( )}r, the zero-knowledge proof text Π, the encrypted data h1/n{circumflex over ( )}r, the pairing e, and the calculation result e(g, h). Here, in a case where the calculation results match, the business operator C (matching device 201) assumes that the matching has succeeded.
On the other hand, in a case where the calculation results do not match, the business operator C (matching device 201) assumes that the matching has failed. Note that, in a case where the validity of the electronic signature σ has not been verified (verification failure), the business operator C (matching device 201) rejects the encrypted data gm{circumflex over ( )}r.
As described above, according to the Information processing system 200 according to the second embodiment, it is possible to apply a mask using the random number r when encryption of the attribute Information m and the requirement Information n is performed. As a result, as compared with the Information processing system 200 described in the first embodiment, a transmission amount between the devices increases, but security of the attribute Information m and the requirement Information n may be further enhanced. For example, by calculating the r-th power of m and n, a ratio (m/n) between m and n may be made difficult to understand, so that the security may be further enhanced.
From these, according to the matching device 201 according to the present embodiment, it is possible to provide a secure and safe matching system by securing, while concealing content of data (for example, the attribute Information m and the requirement information n) of users to be matched from a matching business operator, authenticity of the data (for example, the attribute information m).
Note that the information processing method described in the present embodiment may be Implemented by execution of a program prepared in advance in a computer such as a personal computer or a workstation. The present Information processing program is recorded in a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, a DVD, or a USB memory, and is read from the recording medium to be executed by a computer. Furthermore, the present Information processing program may be distributed via a network such as the Internet.
Furthermore, the information processing device 101 (matching device 201) described in the present embodiment may also be Implemented by a special-purpose IC such as a standard cell or a structured application specific Integrated circuit (ASIC) or a programmable logic device (PLD) such as an FPGA.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the Invention and the concepts contributed by the Inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and Inferiority of the Invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
This application is a continuation application of International Application PCT/JP2021/044588 filed on Dec. 3, 2021 and designated the U.S., the entire contents of which are Incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2021/044588 | Dec 2021 | WO |
Child | 18650402 | US |