This folder contains code for implementing algorithm based on RSA Intersection. This work is built on FATE, eggroll and federation API that construct the secure, distributed and parallel infrastructure.
Our Intersect module is trying to solve the problem that Privacy-Preserving Entity Match. This module will help two parties to find the same user ids without leaking all their user ids to the other. This is illustrated in Figure 1.
In Figure 1,Party A has user id u1,u2,u3,u5, while Party B has u1,u2,u3,u4. After Intersection, party A and party B know their same user ids, which are u1,u2,u3, but party A know nothing about other user ids of party B, like u4, and party B know nothing about party A except u1,u2,u3 as well. While party A and party b transmit their processed id information to the other party, like YB and ZA, it will not leak any raw ids. ZA can be safely because of the privacy key of party A. Each YB includes different random value which binds to each value in XB and will be safely as well.
Using this module, we can get the intersection ids between two parties in security and efficiently.
This intersection module implements the sample intersection method that A sends all his ids to B, and B will find the sample ids according to B's ids.Then B will send the intersection ids to A .
Both rsa and raw intersection support multi-host. It means a guest can do intersection with more than one host simultaneously and finally get the common ID with all hosts.
You can refer to example/intersect/README.md to quickly start running intersection in standalone mode and cluster mode.
Both RSA and RAW intersection supports the following features:
- Support multi-host modeling task. The detail configuration for multi-host modeling task is located Here
RSA intersection support the following extra features:
- RSA support cache to speed up.
RAW intersection support the following extra features:
- RAW support some encoders like md5 or sha256 to make it more safely.