# US 11,909,871 B1 · Anonymized data transmission using per-user-functionality secret shares

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

- Number: US 11,909,871 B1
- Document ID: US11909871B1
- Status: Granted
- Kind: B1
- Application number: 17/813,801
- Filed: 2022-07-20
- Granted: 2024-02-20
- Earliest claimed: 2019-08-23
- Assignees: Liberty Mutual Insurance Company
- Applicants: Liberty Mutual Insurance Company
- Inventors: Gregory Frasco
- Web page: https://patentgrep.com/patent/US11909871B1

## CPC

- H04L 9/085: {Secret sharing or secret splitting, e.g. threshold schemes}
- H04L 9/0662: {with particular pseudorandom sequence generator}
- H04L 9/0825: {using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates}
- H04L 9/0866: {involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics}
- H04L 2209/42: Anonymization, e.g. involving pseudonyms
- H04L 2209/50: Oblivious transfer
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

There is a need for more effective and efficient secure data transmission. This need can be addressed by, for example, solutions for secure data transmission that utilize per-user-functionality secret shares. In one example, a method includes generating a hashed user identifier based on a received user identifier; transmitting the hashed user identifier to an external computing entity; and receiving a data retrieval secret share from the external computing entity, wherein: (i) the data retrieval secret share is selected from a plurality of per-user-functionality secret shares, (ii) the plurality of per-user-functionality secret shares are generated based on a secret value, (iii) the secret value is generated based on the hashed user identifier, (iv) the secret value is used to generate a user data private key, and (v) the external computing entity is configured to encrypt user-provided data using the user data private key prior to transmission of the encrypted user-provided data.

## Claims

### Claim 1

A computer-implemented method for anonymized encryption of user-provided data, the computer-implemented method comprising:
generating, by one or more processors, a hashed user identifier based at least in part on a received user identifier;
transmitting, by the one or more processors, the hashed user identifier to an external computing entity;
receiving, by the one or more processors, a data retrieval secret share from the external computing entity, wherein the external computing entity is configured to: (i) generate a multiplier value and a secret value using a key derivation model whose master key is generated based at least in part on the hashed user identifier, (ii) generate a linear output value based at least in part on a linear model whose input fields comprise the multiplier value and the secret value, (iii) generate the data retrieval secret share to comprise the linear output value, (iv) generate a user data private key by applying a one-way transformation model to the secret value, (v) encrypt the user-provided data using the user data private key to generate encrypted user-provided data prior to transmission of the encrypted user-provided data;
in response to receiving the data retrieval secret share, transmitting, by the one or more processors, an account identifier and an auditing public key to the external computing entity; and
receiving, by the one or more processors, an encrypted data audit secret share from the external computing entity, wherein: (i) the encrypted data audit secret share is generated by encrypting a data audit secret share using the auditing public key, and (ii) the data audit secret share is generated based at least in part on the secret value.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving, by the one or more processors, a data evaluation secret share from the external computing entity, wherein the data evaluation secret share is generated based at least in part on the secret value; and
in response to receiving the data evaluation secret share:
identifying, by the one or more processors, the account identifier based at least in part on the data evaluation secret share,
determining, by the one or more processors, the secret value based at least in part on the data evaluation secret share, and
transmitting, by the one or more processors, the account identifier and the secret value to a data evaluation computing entity, wherein the data evaluation computing entity is configured to: (i) retrieve the encrypted user-provided data using the account identifier, (ii) subsequent to retrieving the encrypted user-provided data, decrypt the encrypted user-provided data using the secret value to generate decrypted user-provided data, (iii) generate a data evaluation based at least in part on the decrypted user-provided data, and (iv) cause the data evaluation to be transmitted to the external computing entity.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
in response to receiving the data retrieval secret share, transmitting, by the one or more processors, the account identifier to the external computing entity, wherein: (i) the account identifier is used to request the encrypted user-provided data by the external computing entity, and (ii) subsequent to receiving the encrypted user-provided data, the external computing entity is configured to decrypt the encrypted user-provided data based at least in part on the user data private key to generate the decrypted user-provided data and display the decrypted user-provided data.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein generating the data audit secret share comprises:
generating, by the one or more processors, a multiplier value based at least in part on the hashed user identifier;
processing, by the one or more processors, the secret value, a randomly-generated value, and the multiplier value in accordance with a linear relationship model to generate a linear output value; and
generating, by the one or more processors, the data audit secret share based at least in part on the multiplier value and the linear output value.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving, by the one or more processors, a data audit request associated with the user-provided data; and
in response to receiving the data audit request:
receiving, by the one or more processors, a required number of data audit validation secret shares, wherein the required number of data audit validation secret shares are related to a data audit private key using a polynomial equation whose degree is determined based at least in part on a count of the required number of data audit validation secret shares;
determining, by the one or more processors, the data audit private key based at least in part on the required number of data audit validation secret shares;
determining, by the one or more processors, one or more audit records using the required number of data audit validation secret shares;
determining, by the one or more processors, one or more decrypted audit records by processing the one or more audit records using the data audit private key; and
transmitting, by the one or more processors, the one or more decrypted audit records to one or more auditor agent computing entities.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein generating the hashed user identifier comprises:
receiving, by the one or more processors, a user identifier from the external computing entity; and
processing, by the one or more processors, the user identifier using an oblivious pseudorandom function model to generate the hashed user identifier.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, wherein the user identifier is determined based at least in part on one or more selected data fields of the user-provided data.

### Claim 8

An apparatus for anonymized encryption of user-provided data, the apparatus comprising at least one processor and at least one memory including program code, the at least one memory and the program code configured to, with the at least one processor, cause the apparatus to at least:
generate a hashed user identifier based at least in part on a received user identifier;
transmit the hashed user identifier to an external computing entity;
receive a data retrieval secret share from the external computing entity, wherein the external computing entity is configured to: (i) generate a multiplier value and a secret value using a key derivation model whose master key is generated based at least in part on the hashed user identifier, (ii) generate a linear output value based at least in part on a linear model whose input fields comprise the multiplier value and the secret value, (iii) generate the data retrieval secret share to comprise the linear output value, (iv) generate a user data private key by applying a one-way transformation model to the secret value, (v) encrypt the user-provided data using the user data private key to generate encrypted user-provided data prior to transmission of the encrypted user-provided data;
in response to receiving the data retrieval secret share, transmit an account identifier and an auditing public key to the external computing entity; and
receive an encrypted data audit secret share from the external computing entity, wherein: (i) the encrypted data audit secret share is generated by encrypting a data audit secret share using the auditing public key, and (ii) the data audit secret share is generated based at least in part on the secret value.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein the at least one memory and the program code are configured to, with the at least one processor, cause the apparatus to at least:
receive a data evaluation secret share from the external computing entity, wherein the data evaluation secret share is generated based at least in part on the secret value; and
in response to receiving the data evaluation secret share:
identify the account identifier based at least in part on the data evaluation secret share,
determine the secret value based at least in part on the data evaluation secret share, and
transmit the account identifier and the secret value to a data evaluation computing entity, wherein the data evaluation computing entity is configured to: (i) retrieve the encrypted user-provided data using the account identifier, (ii) subsequent to retrieving the encrypted user-provided data, decrypt the encrypted user-provided data using the secret value to generate decrypted user-provided data, (iii) generate a data evaluation based at least in part on the decrypted user-provided data, and (iv) cause the data evaluation to be transmitted to the external computing entity.

### Claim 10 (depends on 8)

The apparatus of claim 8, wherein the at least one memory and the program code are configured to, with the at least one processor, cause the apparatus to at least:
in response to receiving the data retrieval secret share, transmit the account identifier to the external computing entity, wherein: (i) the account identifier is used to request the encrypted user-provided data by the external computing entity, and (ii) subsequent to receiving the encrypted user-provided data, the external computing entity is configured to decrypt the encrypted user-provided data based at least in part on the user data private key to generate the decrypted user-provided data and display the decrypted user-provided data.

### Claim 11 (depends on 8)

The apparatus of claim 8, wherein generating the data audit secret share comprises:
generating, by the at least one processor, a multiplier value based at least in part on the hashed user identifier;
processing, by the at least one processor, the secret value, a randomly-generated value, and the multiplier value in accordance with a linear relationship model to generate a linear output value; and
generating, by the at least one processor, the data audit secret share based at least in part on the multiplier value and the linear output value.

### Claim 12 (depends on 8)

The apparatus of claim 8, wherein the at least one memory and the program code are configured to, with the at least one processor, cause the apparatus to at least:
receive a data audit request associated with the user-provided data; and
in response to receiving the data audit request:
receive a required number of data audit validation secret shares, wherein the required number of data audit validation secret shares are related to a data audit private key using a polynomial equation whose degree is determined based at least in part on a count of the required number of data audit validation secret shares;
determine the data audit private key based at least in part on the required number of data audit validation secret shares;
determine one or more audit records using the required number of data audit validation secret shares;
determine one or more decrypted audit records by processing the one or more audit records using the data audit private key; and
transmit the one or more decrypted audit records to one or more auditor agent computing entities.

### Claim 13 (depends on 8)

The apparatus of claim 8, wherein generating the hashed user identifier comprises:
receiving, by the at least one processor, a user identifier from the external computing entity; and
processing, by the at least one processor, the user identifier using an oblivious pseudorandom function model to generate the hashed user identifier.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein the user identifier is determined based at least in part on one or more selected data fields of the user-provided data.

### Claim 15

A computer program product for anonymized encryption of user-provided data, the computer program product comprising at least one non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions configured to:
generate a hashed user identifier based at least in part on a received user identifier;
transmit the hashed user identifier to an external computing entity;
receive a data retrieval secret share from the external computing entity, wherein the external computing entity is configured to: (i) generate a multiplier value and a secret value using a key derivation model whose master key is generated based at least in part on the hashed user identifier, (ii) generate a linear output value based at least in part on a linear model whose input fields comprise the multiplier value and the secret value, (iii) generate the data retrieval secret share to comprise the linear output value, (iv) generate a user data private key by applying a one-way transformation model to the secret value, (v) encrypt the user-provided data using the user data private key to generate encrypted user-provided data prior to transmission of the encrypted user-provided data;
in response to receiving the data retrieval secret share, transmit an account identifier and an auditing public key to the external computing entity; and
receive an encrypted data audit secret share from the external computing entity, wherein: (i) the encrypted data audit secret share is generated by encrypting a data audit secret share using the auditing public key, and (ii) the data audit secret share is generated based at least in part on the secret value.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the computer-readable program code portions are configured to:
receive a data evaluation secret share from the external computing entity, wherein the data evaluation secret share is generated based at least in part on the secret value; and
in response to receiving the data evaluation secret share:
identify the account identifier based at least in part on the data evaluation secret share,
determine the secret value based at least in part on the data evaluation secret share, and
transmit the account identifier and the secret value to a data evaluation computing entity, wherein the data evaluation computing entity is configured to: (i) retrieve the encrypted user-provided data using the account identifier, (ii) subsequent to retrieving the encrypted user-provided data, decrypt the encrypted user-provided data using the secret value to generate decrypted user-provided data, (iii) generate a data evaluation based at least in part on the decrypted user-provided data, and (iv) cause the data evaluation to be transmitted to the external computing entity.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein the computer-readable program code portions are configured to:
in response to receiving the data retrieval secret share, transmit the account identifier to the external computing entity, wherein: (i) the account identifier is used to request the encrypted user-provided data by the external computing entity, and (ii) subsequent to receiving the encrypted user-provided data, the external computing entity is configured to decrypt the encrypted user-provided data based at least in part on the user data private key to generate the decrypted user-provided data and display the decrypted user-provided data.
