Patentable/Patents/US-9613292
US-9613292

Secure multi-dimensional pattern matching for secure search and recognition

PublishedApril 4, 2017
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Described is a protocol for multi-dimensional secure pattern matching. The protocol is to be evaluated between two parties, P1 (or Client) and P2 (or Server). P1 holds a multi-dimensional pattern, p, and P2 holds a multi-dimensional text T (where both p and T have the same number of dimensions, but where p may be of smaller length in each dimension compared to T). P1 and P2 would then engage in a protocol that allows P1 to find out whether p is present in T or not. The security and privacy requirements are that P2 does not learn any information about the pattern p nor the result of the matching. P1 should also not learn any information about T other than whether p is present in it or not. Upon implementation of the protocol, p matches T if there exists an m× . . . ×m sub-hypermatrix (or sub-array) of T that equals p.

Patent Claims
3 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

1. A computer implemented method for multi-dimensional secure pattern matching between two parties, Client and Server, the Client holding a multi-dimensional pattern P and the Server holding a multi-dimensional text T, the method comprising an act of causing a computer having a processor to execute instructions encoded upon a memory, such that upon execution, the processor performs an operation of: generating matching results for the Client by determining if P is present in T, such that the Server is not provided any information about P nor the matching results, and such that the Client is not provided any information about T other than the matching results; wherein P is a m×m pattern matrix over alphabet Σ and a wildcard; and wherein generating the matching results further comprises operations of: encrypting, by the Client, the pattern matrix with a secret key and a public key; for each i in alphabet Σ, forming a character delay vector; encrypting each character delay vector element-wise to generate an encrypted character delay vector, which collectively form a set of all encrypted character delay vectors; encrypting a pattern matching threshold to generate an encrypted pattern matching threshold; transmitting both the set of all encrypted character delay vectors and the encrypted pattern matching threshold to the Server; transmitting the public key to the Server so that the Server can encrypt elements; forming an encrypted activation matrix E(AM); for each (j,k) in T, where T is a text matrix over Σ, letting i=T(j,k); multiplying element-wise the encrypted character delay vector corresponding to text character i with the encrypted activation matrix E(AM), starting at position (j,k) of the encrypted activation matrix E(AM); multiplying the encrypted pattern matching threshold to each element of the encrypted activation matrix E(AM) and exponentiating the result by random numbers to generate an randomized encrypted matrix; transmitting the randomized encrypted matrix to the Client; decrypting the randomized encrypted matrix to generate a decrypted randomized matrix; and at each position (j,k) in the decrypted randomized matrix, where the decryption is a 0, recording a match of P with T starting at position (j−m+1, k−m+1).

Plain English Translation

A computer-implemented method for securely finding a multi-dimensional pattern (P) within a larger multi-dimensional text (T) involves a client and a server. The client, holding pattern P (an m x m matrix with characters from alphabet Σ and wildcards), encrypts it using a secret and public key. The client creates encrypted character delay vectors (one for each character in Σ) and an encrypted pattern matching threshold, sending these, along with the public key, to the server. The server forms an encrypted activation matrix (E(AM)). For each character in text T, the server multiplies the corresponding encrypted character delay vector with E(AM) and then multiplies E(AM) by the encrypted pattern matching threshold, randomizing the result. This randomized encrypted matrix is sent back to the client for decryption. The client then identifies pattern matches by finding zeros in the decrypted matrix, indicating a match of P within T. The server learns nothing about P or the matching results, and the client learns nothing about T except whether P is present.

Claim 2

Original Legal Text

2. A computer program product for multi-dimensional secure pattern matching between two parties, Client and Server, the Client holding a multi-dimensional pattern P and the Server holding a multi-dimensional text T, the computer program product comprising: a non-transitory computer-readable medium having executable instructions encoded thereon, such that upon execution of the instructions by one or more processors, the one or more processors perform operations of: generating matching results for the Client by determining if P is present in T, such that the Server is not provided any information about P nor the matching results, and such that the Client is not provided any information about T other than the matching results; wherein P is a m×m pattern matrix over alphabet Σ and a wildcard; and wherein generating the matching results further comprises operations of: encrypting, by the Client, the pattern matrix with a secret key and a public key; for each i in alphabet Σ, forming a character delay vector; encrypting each character delay vector element-wise to generate an encrypted character delay vector, which collectively form a set of all encrypted character delay vectors; encrypting a pattern matching threshold to generate an encrypted pattern matching threshold; transmitting both the set of all encrypted character delay vectors and the encrypted pattern matching threshold to the Server; transmitting the public key to the Server so that the Server can encrypt elements; forming an encrypted activation matrix E(AM); for each (j,k) in T, where T is a text matrix over Σ, letting i=T(j,k); multiplying element-wise the encrypted character delay vector corresponding to text character i with the encrypted activation matrix E(AM), starting at position (j,k) of the encrypted activation matrix E(AM); multiplying the encrypted pattern matching threshold to each element of the encrypted activation matrix E(AM) and exponentiating the result by random numbers to generate an randomized encrypted matrix; transmitting the randomized encrypted matrix to the Client; decrypting the randomized encrypted matrix to generate a decrypted randomized matrix; and at each position (j,k) in the decrypted randomized matrix, where the decryption is a 0, recording a match of P with T starting at position (j−m+1, k−m+1).

Plain English Translation

A computer program, stored on a non-transitory computer-readable medium, enables secure multi-dimensional pattern matching between a client and a server. The client, holding pattern P (an m x m matrix with characters from alphabet Σ and wildcards), encrypts it using a secret and public key. The client creates encrypted character delay vectors (one for each character in Σ) and an encrypted pattern matching threshold, sending these, along with the public key, to the server. The server forms an encrypted activation matrix (E(AM)). For each character in text T, the server multiplies the corresponding encrypted character delay vector with E(AM) and then multiplies E(AM) by the encrypted pattern matching threshold, randomizing the result. This randomized encrypted matrix is sent back to the client for decryption. The client then identifies pattern matches by finding zeros in the decrypted matrix, indicating a match of P within T. The server learns nothing about P or the matching results, and the client learns nothing about T except whether P is present.

Claim 3

Original Legal Text

3. A system for multi-dimensional secure pattern matching between two parties, Client and Server, the Client holding a multi-dimensional pattern P and the Server holding a multi-dimensional text T, the system comprising: one or more processors and a memory, the memory being a non-transitory computer-readable medium having executable instructions encoded thereon, such that upon execution of the instructions, the one or more processors perform operations of: generating matching results for the Client by determining if P is present in T, such that the Server is not provided any information about P nor the matching results, and such that the Client is not provided any information about T other than the matching results wherein P is a m×m pattern matrix over alphabet Σ and a wildcard; and wherein generating the matching results further comprises operations of: encrypting, by the Client, the pattern matrix with a secret key and a public key; for each i in alphabet Σ, forming a character delay vector; encrypting each character delay vector element-wise to generate an encrypted character delay vector, which collectively form a set of all encrypted character delay vectors; encrypting a pattern matching threshold to generate an encrypted pattern matching threshold; transmitting both the set of all encrypted character delay vectors and the encrypted pattern matching threshold to the Server; transmitting the public key to the Server so that the Server can encrypt elements; forming an encrypted activation matrix E(AM); for each (j,k) in T, where T is a text matrix over Σ, letting i=T(j,k); multiplying element-wise the encrypted character delay vector corresponding to text character i with the encrypted activation matrix E(AM), starting at position (j,k) of the encrypted activation matrix E(AM); multiplying the encrypted pattern matching threshold to each element of the encrypted activation matrix E(AM) and exponentiating the result by random numbers to generate an randomized encrypted matrix; transmitting the randomized encrypted matrix to the Client; decrypting the randomized encrypted matrix to generate a decrypted randomized matrix; and at each position (j,k) in the decrypted randomized matrix, where the decryption is a 0, recording a match of P with T starting at position (j−m+1, k−m+1).

Plain English Translation

A system for securely finding a multi-dimensional pattern (P) within a larger multi-dimensional text (T) includes one or more processors and memory storing instructions to execute this process. The client, holding pattern P (an m x m matrix with characters from alphabet Σ and wildcards), encrypts it using a secret and public key. The client creates encrypted character delay vectors (one for each character in Σ) and an encrypted pattern matching threshold, sending these, along with the public key, to the server. The server forms an encrypted activation matrix (E(AM)). For each character in text T, the server multiplies the corresponding encrypted character delay vector with E(AM) and then multiplies E(AM) by the encrypted pattern matching threshold, randomizing the result. This randomized encrypted matrix is sent back to the client for decryption. The client then identifies pattern matches by finding zeros in the decrypted matrix, indicating a match of P within T. The server learns nothing about P or the matching results, and the client learns nothing about T except whether P is present.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

March 11, 2014

Publication Date

April 4, 2017

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Secure multi-dimensional pattern matching for secure search and recognition” (US-9613292). https://patentable.app/patents/US-9613292

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/US-9613292. See llms.txt for full attribution policy.