A method for preserving privacy in comparing private datasets of a first computing system and a second computing system , the method comprising: identifying, by the second computing system, a first set of identifiers corresponding to records in a private database of the second computing system; for each identifier in the first set of identifiers: (i) generating, by the second computing system, an encrypted version of the identifier using a homomorphic encryption process, (ii) providing, from the second computing system and to the first computing system, the encrypted version of the identifier, (iii) receiving, by the second computing system and from the first computing system, a blinded-encrypted version of the identifier that was generated using a secret key of the first computing system, and (iv) decrypting, by the second computing system, the blinded-encrypted version of the identifier to generate a blinded version of the identifier; receiving, by the second computing system, blinded versions of a second set of identifiers corresponding to records in a private database of the first computing system; determining, by the second computing system, an intersection , or a characteristic of the intersection, of the records in the private database of the first computing system and the records in the private database of the second computing system based on matches between the blinded versions of the first set of identifiers and the blinded versions of the second set of identifiers; and providing, by the second computing system, an indication of the intersection or the characteristic of the intersection. identifying, by the second computing system, a first set of identifiers corresponding to records in a private database of the second computing system; for each identifier in the first set of identifiers: (i) generating, by the second computing system, an encrypted version of the identifier using a homomorphic encryption process, (ii) providing, from the second computing system and to the first computing system, the encrypted version of the identifier, (iii) receiving, by the second computing system and from the first computing system, a blinded-encrypted version of the identifier that was generated using a secret key of the first computing system, and (iv) decrypting, by the second computing system, the blinded-encrypted version of the identifier to generate a blinded version of the identifier; (i) generating, by the second computing system, an encrypted version of the identifier using a homomorphic encryption process, (ii) providing, from the second computing system and to the first computing system, the encrypted version of the identifier, (iii) receiving, by the second computing system and from the first computing system, a blinded-encrypted version of the identifier that was generated using a secret key of the first computing system, and (iv) decrypting, by the second computing system, the blinded-encrypted version of the identifier to generate a blinded version of the identifier; receiving, by the second computing system, blinded versions of a second set of identifiers corresponding to records in a private database of the first computing system; determining, by the second computing system, an intersection , or a characteristic of the intersection, of the records in the private database of the first computing system and the records in the private database of the second computing system based on matches between the blinded versions of the first set of identifiers and the blinded versions of the second set of identifiers; and providing, by the second computing system, an indication of the intersection or the characteristic of the intersection. <EOS>