Patent ID: 8776250

Claim:
A method for comparing two sets of private data without revealing the data, the method comprising the steps of: computing, using a first computer by a first party, a first private matrix (A 1 ) according to the equation A 1 =d 1 ·d 1 T where d 1 is a non-zero first private data expressed as a column vector and d 1 T is its corresponding transpose; finding, a first eigenvalue (λ d1 ) and a corresponding unity normalized first eigenvector (V d1 ) of the first private matrix (A 1 ); computing, using a second computer by a second party, a second private matrix (A 2 ) according to the equation A 2 =d 2 ·d 2 T where d 2 is a non-zero second private data expressed as a column vector and d 2 T is its corresponding transpose; finding a second eigenvalue (λ d2 ) and a corresponding unity normalized second eigenvector (V d2 ) of the second private matrix (A 2 ); computing, using the first computer and the second computer, a non-zero bisector vector (x) in the equation (d 1 ·d 1 T +d 2 ·d 2 T )x=λ d1 V d1 +λ d2 V d2 by exchanging encrypted matrix d 1 ·d 1 T ; encrypted vector λ d1 V d1 ; encrypted matrix d 2 ·d 2 T ; and encrypted vector λ d2 V d2 respectively, without the first party or the second party revealing d 1 , λ d1 , V d1 , d 2 , λ d2 or V d2 ; determining whether or not (1) an angular deviation between the first eigenvector (V d1 ) and the second eigenvector (V d2 ) is within a threshold, or (2) a distance between V d1 and V d2 is within the threshold, wherein: if the determining within the threshold is satisfied, the first private data and second private data are deemed sufficiently similar; if the determining within the threshold is un satisfied, the first private data and second private data are deemed dissimilar.