# US 11,451,370 B2 · Secure probabilistic analytics using an encrypted analytics matrix

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,451,370 B2
- Document ID: US11451370B2
- Status: Granted
- Kind: B2
- Application number: 17/006,676
- Filed: 2020-08-28
- Published: 2020-12-17
- Granted: 2022-09-20
- Earliest claimed: 2017-01-20
- Assignees: Enveil, Inc.
- Applicants: Enveil, Inc.
- Inventors: Ellison Anne Williams; Ryan Carr
- Web page: https://patentgrep.com/patent/US11451370B2

## CPC

- H04L 9/008: {involving homomorphic encryption}
- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- G06F 16/3344: {using natural language analysis}
- G06F 17/16: Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 40/30: Semantic analysis
- G09C 1/00: Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system (cryptographic typewriters G09C3/00)
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- H04L 9/0861: {Generation of secret information including derivation or calculation of cryptographic keys or passwords}
- H04L 9/14: using a plurality of keys or algorithms
- H04L 9/30: Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L 9/302: {involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes}
- H04L 9/3242: {involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC}
- H04L 63/0435: {wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for symmetric key encryption H04L9/06)}
- G06F 21/30: Authentication, i.e. establishing the identity or authorisation of security principals
- G06F 40/211: Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
- G06F 40/253: Grammatical analysis; Style critique
- G06F 40/284: Lexical analysis, e.g. tokenisation or collocates
- G06F 40/295: Named entity recognition
- G06N 7/08: using chaos models or non-linear system models
- H04L 2209/04: Masking or blinding
- H04L 2209/12: Details relating to cryptographic hardware or logic circuitry
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G09C: CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

Provided are methods and systems for performing a secure probabilistic analytic using an encrypted analytics matrix. An example method includes acquiring, by a client, an analytic, analytic parameters associated with the analytic, and a homomorphic encryption scheme including a public key for encryption and a private key for decryption. The method further includes generating, using the encryption scheme, an analytic matrix based on the analytic and analytic parameters, and sending the analytic matrix and the encryption scheme to at least one server. The method includes generating, by the server and based on the encryption scheme, set of terms from a data set, evaluating the analytic matrix over the set of terms to obtain an encrypted result, and estimating a probabilistic error of the encrypted result. The method further includes sending, by the server, the encrypted result and the probabilistic error to the client where the encrypted result is decrypted.

## Claims

### Claim 1

A method for building an analytic matrix, comprising:
determining an analytic and at least one parameter associated with the analytic;
extracting, using a term generation function, a set of term elements from the analytic and the at least one analytic parameter;
generating, using a keyed hash function, a set of hashes from the set of term elements;
partitioning elements of the set of hashes to generate a set of vectors, with each vector of the set of vectors having a pre-defined dimension;
determining whether for at least one matrix element associated with row j and column m of at least one analytic matrix, there is a vector C from the set of vectors wherein C[j]=m;
assigning the at least one matrix element a non-zero value when a result of the determination is positive; and
assigning the at least one matrix element a zero value when the result of the determination is negative.

### Claim 2 (depends on 1)

The method according to claim 1, wherein a number of rows of the at least one analytic matrix is equal or greater than a number of elements in the set of term elements and length of the elements in the set of hashes is divisible by a number of columns of the at least one analytic matrix.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the non-zero value is an encrypted value of a non-zero bitmask of a term element of the set of term elements, wherein a hash of the term element is used to generate the vector C, the encrypted value being obtained using a homomorphic encryption scheme.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the analytic and the at least one parameter are encoded using a homomorphic encryption scheme.

### Claim 5 (depends on 4)

The method according to claim 4, wherein the homomorphic encryption scheme includes a public key for encryption and a private key for decryption.

### Claim 6 (depends on 1)

The method according to claim 1, further comprising extracting the set of term elements from a data set using the term generation function, the keyed hashed function, and the analytic.

### Claim 7 (depends on 1)

The method according to claim 1, further comprising evaluating the at least one analytic matrix over an encrypted data set to obtain at least one encrypted result.

### Claim 8 (depends on 7)

The method according to claim 7, further comprising estimating a probabilistic error bound of the at least one encrypted result.

### Claim 9 (depends on 8)

The method according to claim 8, further comprising sending either or both of the at least one encrypted result and the probabilistic error bound to a client.

### Claim 10

A system for building an analytic matrix, comprising:
a processor; and
a memory for storing instructions, the processor executing the instructions to:
determine an analytic and at least one parameter associated with the analytic;
extract, using a term generation function, a set of term elements from the analytic and the at least one analytic parameter;
generate, using a keyed hash function, a set of hashes from the set of term elements;
partition elements of the set of hashes to generate a set of vectors, with each vector of the set of vectors having a pre-defined dimension;
determine whether for at least one matrix element associated with row j and column m of at least one analytic matrix, there is a vector C from the set of vectors wherein C[j]=m;
assign the at least one matrix element a non-zero value when a result of the determination is positive; and
assign the at least one matrix element a zero value when the result of the determination is negative.

### Claim 11 (depends on 10)

The system according to claim 10, wherein a number of rows of the at least one analytic matrix is equal or greater than a number of elements in the set of term elements and length of the elements in the set of hashes is divisible by a number of columns of the at least one analytic matrix.

### Claim 12 (depends on 10)

The system according to claim 10, wherein the non-zero value is an encrypted value of a non-zero bitmask of a term element of the set of term elements, wherein a hash of the term element is used to generate the vector C, the encrypted value being obtained using a homomorphic encryption scheme.

### Claim 13 (depends on 10)

The system according to claim 10, wherein the analytic and the at least one parameter are encoded using a homomorphic encryption scheme.

### Claim 14 (depends on 13)

The system according to claim 13, wherein the homomorphic encryption scheme includes a public key for encryption and a private key for decryption.

### Claim 15 (depends on 10)

The system according to claim 10, wherein the processor is configured to extract the set of term elements from a data set using the term generation function, the keyed hashed function, and the analytic.

### Claim 16 (depends on 10)

The system according to claim 10, wherein the processor is configured to evaluate the at least one analytic matrix over an encrypted data set to obtain at least one encrypted result.

### Claim 17 (depends on 16)

The system according to claim 16, wherein the processor is configured to estimate a probabilistic error bound of the at least one encrypted result.

### Claim 18 (depends on 17)

The system according to claim 17, wherein the processor is configured to send either or both of the at least one encrypted result and the probabilistic error bound to a client.

### Claim 19

A non-transitory computer-readable storage medium having embodied thereon instructions, which when executed by at least one processor, perform steps of a method, the method comprising:
determining an analytic and at least one parameter associated with the analytic;
extracting, using a term generation function, a set of term elements from the analytic and the at least one analytic parameter;
generating, using a keyed hash function, a set of hashes from the set of term elements;
partitioning elements of the set of hashes to generate a set of vectors, with each of vector of the set of vectors having a pre-defined dimension;
determining whether for at least one matrix element associated with row j and column m of at least one analytic matrix, there is a vector C from the set of vectors wherein C[j]=m;
assigning the at least one matrix element a non-zero value when a result of the determination is positive; and
assigning the at least one matrix element a zero value when the result of the determination is negative.

### Claim 20 (depends on 19)

The non-transitory computer-readable storage medium according to claim 19, wherein the method further comprises:
evaluating the at least one analytic matrix over an encrypted data set to obtain at least one encrypted result;
estimating a probabilistic error bound of the at least one encrypted result; and
sending either or both of the at least one encrypted result and the probabilistic error bound to a client.
