Finding matching locations, trajectories or attributes while maintaining privacy of non-matching information
First Claim
1. A method of finding elements that match across a plurality of sets, the method comprising:
- partitioning a representation of each element of a plurality of sets into a series of segments; and
repeating a matching process comprising;
disclosing one of the segments from each element that is from a selected one of the sets and that is a potential match;
removing from the potential matches those elements that do not match the disclosed segment; and
rotating which among the sets is the selected set.
10 Assignments
0 Petitions
Accused Products
Abstract
A method and an apparatus for matching elements within sets of trajectories, locations or other attributes without revealing the entire sets. The elements are partitioned into segments. A rotating selection is made among the sets and one segment of each potentially matching element is newly disclosed from the selected set. Optionally, the sets are cryptographically hashed, using, for example, a MD5 hash or a SHA-1 hash. Optionally, the sets are represented as tries, and successively lower levels within the tries are newly disclosed from potentially matching elements as the disclosing set rotates. Optionally, the sets are encoded, using: a grid of longitude and latitude; a spatial temporal grid; a overlapping spatial grid; a temporal grid; a set of cities; a set of countries; a set of names of places; or a set of attributes. Optionally, the matching process is repeated while refining the encoding. Optionally, negotiations determine what encoding or cryptographic hash is used.
28 Citations
36 Claims
-
1. A method of finding elements that match across a plurality of sets, the method comprising:
-
partitioning a representation of each element of a plurality of sets into a series of segments; and
repeating a matching process comprising;
disclosing one of the segments from each element that is from a selected one of the sets and that is a potential match;
removing from the potential matches those elements that do not match the disclosed segment; and
rotating which among the sets is the selected set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A program storage medium readable by a computer, embodying a program of instructions executable by the computer for controlling a method of finding matching elements within a plurality of sets, the method comprising:
-
partitioning a representation of each element of a plurality of sets into a series of segments; and
repeating a matching process comprising;
disclosing one of the segments from each element that is from a selected one of the sets and that is a potential match;
removing from the potential matches those elements that do not match the disclosed segment; and
rotating which among the sets is the selected set. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A means for participating in a process to find matching elements within a plurality of sets, the means comprising:
-
a processing means for partitioning into a series of segments a representation of each element of a set that corresponds to the processing means; and
a means for communicating to and from the processing means;
wherein processing means is further a means for, when the processing means is a selected processing means, disclosing via the communications means one of the segments from each of the elements that is a potential match, and further a means for, when the processing means is not the selected processing means, removing from the potential matches those elements that that do not match a disclosed segment received via the communications means.
-
-
25. A device configured to participate in a process to find matching elements within a plurality of sets, the system comprising:
-
a processor configured to partition into a series of segments a representation of each element of a set that corresponds to the processor; and
a communications coupling;
wherein the processor is further configured to disclose, when the processor is a selected processor, via the communications coupling one of the segments from each of the elements that is a potential match, and to remove, when the processor is not the selected processor, from the potential matches those elements that do not match a disclosed segment received via the communications coupling. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification