Patent ID: 9596083
Date: 2017-03-14
CPC Classifications: H04L

Claim:
1. A matching method, comprising: first generating, by a system that includes a plurality of computers, a first numerical vector by numerically vectorizing first text stored in a first data storage unit; second generating, by the system, a second numerical vector by squaring each component of the first numerical vector and a third numerical vector by cubing each component of the first numerical vector; third generating, by the system, a first polynomial by executing a polynomial transformation of the first numerical vector, a second polynomial by executing the polynomial transformation of the second numerical vector, and a third polynomial by executing the polynomial transformation of the third numerical vector; encrypting, by the system, the first polynomial, the second polynomial and the third polynomial by a homomorphic encryption scheme capable of operating polynomials; executing, by the system, an operation in which a distance between the first text and second text in pattern matching becomes 0 when the first text coincides with a part of the second text, when the first text that includes a special character representing any character coincides with the part of the second text, and when the first text coincides with the part of the second text that includes the special character, while keeping data used in the operation encrypted, by using the encrypted first polynomial, the encrypted second polynomial, the encrypted third polynomial, a fourth polynomial obtained by the polynomial transformation and the homomorphic encryption of a fourth numerical vector, a fifth polynomial obtained by the polynomial transformation and the homomorphic encryption of a fifth numerical vector, and a sixth polynomial obtained by the polynomial transformation and the homomorphic encryption of a sixth numerical vector, wherein the fourth numerical vector is generated by numerically vectorizing the second text, the fifth numerical vector is generated by squaring each component of the fourth numerical vector, the sixth numerical vector is generated by cubing each component of the fourth numerical vector, and the fourth polynomial, the fifth polynomial and the sixth polynomial are stored in a second data storage unit; decrypting, by the system, a result of the operation; and determining, by the system and based on the decrypted result, whether the first text exists in the second text.