Matching system, matching apparatus, matching method, and program
A (secure) matching system includes a user-side apparatus; and a service-side apparatus. The user-side apparatus includes a user key generation part and a registration part that registers a registration ciphertext in the service-side apparatus. The service-side apparatus includes a service key generation part, a conversion key generation part that generates a conversion key for converting a first ciphertext encrypted with a service public key into a second ciphertext encrypted with a user public key without executing a decryption process, and a matching part. The service-side apparatus generates a second ciphertext with the conversion key after generating a first ciphertext obtained by encrypting features used as a matching source with the service public key and matches the second ciphertext against a registered ciphertext.
1 . A matching system, comprising:
a user-side apparatus; and
a service-side apparatus;
wherein the user-side apparatus includes:
a user key generation part that generates a pair of a user public key and a user secret key, and
a registration part that registers a registration ciphertext obtained by encrypting a plurality of features used as a matching destination with the user public key in the service-side apparatus;
wherein the service-side apparatus includes:
a service key generation part that generates a pair of a service public key and a service secret key,
a conversion key generation part that generates a conversion key for converting a first ciphertext encrypted with the service public key into a second ciphertext encrypted with the user public key without executing a decryption process, and
a matching part that matches the second ciphertext against the registered ciphertext; and
wherein the service-side apparatus generates a second ciphertext with the conversion key after generating a first ciphertext obtained by encrypting features used as a matching source with the service public key and matches the second ciphertext against a registered ciphertext.
2 . The matching system according to claim 1 ; wherein the service-side apparatus further includes
an encryption part that receives features used as a matching source, and obtains a first ciphertext by encrypting the features with the service public key, and
a re-encryption part that converts the first ciphertext into a second ciphertext with the conversion key.
3 . The matching system according to claim 1 ; wherein, the conversion key generation part generates the conversion key by using a user public key and the service secret key.
4 . The matching system according to claim 1 ;
wherein the matching part in the service-side apparatus calculates a similarity between the registered ciphertext and the second ciphertext while keeping these encrypted data secret; and
wherein the user-side apparatus further includes:
a decryption part that decrypts the encrypted similarity by using the user secret key, and
a determination part that determines whether the decrypted similarity falls within an acceptable range.
5 . The matching system according to claim 4 ;
wherein at least the second ciphertext is based on a fully homomorphic encryption in which a homomorphic operation is defined regarding a plurality of multiplications and additions; and
wherein the matching part obtains a similarity by calculating a distance between features based on the registered ciphertext and features based on the second ciphertext through a homomorphic operation.
6 . The matching system according to claim 4 , comprising:
a registration user apparatus including the user key generation part and the registration part;
a registration server apparatus including the service key generation part and the conversion key generation part;
a matching server apparatus including the encryption part, the re-encryption part, and the matching part; and
a matching user apparatus including the decryption part and the determination part.
7 . A matching apparatus, comprising:
a service key generation part that generates a pair of a service public key and a service secret key;
a conversion key generation part that generates, by using a plurality of user public keys and the service secret key, conversion keys, each of which is for converting a first ciphertext encrypted with the service public key into a second ciphertext encrypted with a corresponding one of the user public keys without executing a decryption process;
a registration part that obtains a registration ciphertext by encrypting a plurality of features used as a matching destination with a corresponding user public key;
an encryption part that receives matching target features and obtains a first ciphertext by encrypting the features with the service public key;
a re-encryption part that converts the first ciphertext into the second ciphertext with the conversion key; and
a matching part that matches the second ciphertext against the registered ciphertext.
8 . A matching method, comprising:
generating a pair of a user public key and a user secret key;
generating a pair of a service public key and a service secret key;
generating a conversion key for converting a first ciphertext encrypted with the service public key into a second ciphertext encrypted with the user public key without executing a decryption process;
obtaining a registration ciphertext by encrypting a plurality of features used as a matching destination with the user public key;
receiving features used as a matching source, and obtaining the first ciphertext by encrypting the features with the service public key;
converting the first ciphertext into the second ciphertext with the conversion key; and
matching the second ciphertext against the registered ciphertext.
9 . The matching method according to claim 8 ;
wherein, in the matching process, a similarity between the registered ciphertext and the second ciphertext is calculated with these encrypted data kept secret; and
wherein the matching method further includes:
decrypting the encrypted similarity by using the user secret key; and
determining whether the decrypted similarity falls within an acceptable range.
10 . A non-transitory computer readable medium storing a program, causing a computer to execute:
processing for generating a pair of a user public key and a user secret key;
processing for generating a pair of a service public key and a service secret key;
processing for generating a conversion key for converting a first ciphertext encrypted with the service public key into a second ciphertext encrypted with the user public key without executing a decryption process;
processing for obtaining a registration ciphertext by encrypting a plurality of features used as a matching candidate with the user public key;
processing for receiving features used as a matching target, and obtaining the first ciphertext by encrypting the features with the service public key;
processing for converting the first ciphertext into the second ciphertext with the conversion key; and
processing for matching the second ciphertext against the registered ciphertext.
11 . The matching apparatus according to claim 7 ; further comprising:
an encryption part that receives features used as a matching source, and obtains a first ciphertext by encrypting the features with the service public key, and
a re-encryption part that converts the first ciphertext into a second ciphertext with the conversion key.
12 . The matching apparatus according to claim 7 ; wherein the matching part calculates a similarity between the registered ciphertext and the second ciphertext while keeping these encrypted data secret.
13 . The matching apparatus according to claim 12 ;
wherein at least the second ciphertext is based on a fully homomorphic encryption in which a homomorphic operation is defined regarding a plurality of multiplications and additions; and
wherein the matching part obtains a similarity by calculating a distance between features based on the registered ciphertext and features based on the second ciphertext through a homomorphic operation.
14 . The matching method according to claim 8 ; wherein the conversion key is generated by using a user public key and the service secret key.
15 . The matching method according to claim 8 ;
wherein at least the second ciphertext is based on a fully homomorphic encryption in which a homomorphic operation is defined regarding a plurality of multiplications and additions; and
wherein a similarity is obtained by calculating a distance between features based on the registered ciphertext and features based on the second ciphertext through a homomorphic operation.
16 . The non-transitory computer readable medium storing the program according to claim 10 ;
wherein, in the processing for matching, a similarity between the registered ciphertext and the second ciphertext is calculated with these encrypted data kept secret; and
wherein the program further causing a computer to execute:
processing for decrypting the encrypted similarity by using the user secret key; and
processing for determining whether the decrypted similarity falls within an acceptable range.
17 . The non-transitory computer readable medium storing the program according to claim 10 ; wherein the conversion key is generated by using a user public key and the service secret key.
18 . The non-transitory computer readable medium storing the program according to claim 10 ;
wherein at least the second ciphertext is based on a fully homomorphic encryption in which a homomorphic operation is defined regarding a plurality of multiplications and additions; and
wherein a similarity is obtained by calculating a distance between features based on the registered ciphertext and features based on the second ciphertext through a homomorphic operation.