# US 11,444,928 B2 · Controlling transmission of information through a zero-knowledge data management network

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

- Number: US 11,444,928 B2
- Document ID: US11444928B2
- Status: Granted
- Kind: B2
- Application number: 16/703,851
- Filed: 2019-12-04
- Published: 2020-06-11
- Granted: 2022-09-13
- Earliest claimed: 2018-12-04
- Assignees: Journey.ai
- Applicants: Journey.ai
- Inventors: Brett Shockley; Alexander John Shockley; Michael Joseph Frendo; Shmuel Shaffer; Kenneth Keiter; James M. Behmke
- Web page: https://patentgrep.com/patent/US11444928B2

## CPC

- H04L 63/0471: {applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding}
- G06F 3/062: {Securing storage systems}
- G06F 3/0623: {in relation to content}
- G06F 3/0655: {Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices}
- G06F 3/0661: {Format or protocol conversion arrangements}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0671: {In-line storage system}
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/62: Protecting access to data via a platform, e.g. using keys or access control rules
- G06F 21/645: {using a third party}
- G06Q 20/38215: {Use of certificates or encrypted proofs of transaction rights}
- G06Q 20/3829: {involving key management}
- G06Q 20/383: {Anonymous user system}
- G06Q 20/401: {Transaction verification}
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- H04L 9/0819: {Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) (network architectures or network communication protocols for key distribution in a packet data network H04L63/062)}
- H04L 9/0825: {using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates}
- H04L 9/083: {involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]}
- H04L 9/0833: {involving conference or group key (network architectures or network communication protocols for key management in group communication in a packet data network H04L63/065)}
- H04L 9/0891: {Revocation or update of secret information, e.g. encryption key update or rekeying}
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- 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/3218: {using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs}
- H04L 9/3236: {using cryptographic hash functions}
- H04L 9/3242: {involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC}
- H04L 9/3247: {involving digital signatures}
- H04L 9/3263: {involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements (network architectures or network communication protocols for supporting authentication of entities using certificates in a packet data network H04L63/0823)}
- H04L 9/3265: {using certificate chains, trees or paths; Hierarchical trust model}
- H04L 9/3268: {using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]}
- H04L 63/0421: {Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer}
- H04L 63/0442: {wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for public-key encryption H04L9/30)}
- H04L 63/083: {using passwords (cryptographic mechanisms or cryptographic arrangements for entity authentication using a predetermined code H04L9/3226)}
- H04L 63/101: {Access control lists [ACL]}
- H04L 63/102: {Entity profiles}
- H04L 2209/56: Financial cryptography, e.g. electronic payment or e-cash
- H04L 2209/64: Self-signed certificates
- 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)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

The techniques herein are directed generally to a “zero-knowledge” data management network. Users are able to share verifiable proof of data and/or identity information, and businesses are able to request, consume, and act on the data—all without a data storage server or those businesses ever seeing or having access to the raw sensitive information (where server-stored data is viewable only by the intended recipients, which may even be selected after storage). In one embodiment, source data is encrypted with a source encryption key (e.g., source public key), with a rekeying key being an encrypting combination of a source decryption key (e.g., source private key) and a recipient's public key. Without being able to decrypt the data, the storage server can use the rekeying key to re-encrypt the source data with the recipient's public key, to then be decrypted only by the corresponding recipient using its private key, accordingly.

## Claims

### Claim 1

A method, comprising:
participating, by a device, in a data storage system, wherein:
i) a storage server is configured to obtain and store source-encrypted source data received from a source, the source-encrypted source data comprising source data encrypted by the source with a source encryption key of the source, wherein the device and the storage server are unable to decrypt the source-encrypted source data;
ii) the source is configured to establish and send a recipient-based rekeying key to the storage server, the recipient-based rekeying key established through an encrypting combination of a source decryption key of the source and a recipient public key of a particular recipient; and
iii) the storage server is further configured to re-encrypt the source-encrypted source data with the recipient-based rekeying key in response to a request to share the source data with the particular recipient, the re-encrypting resulting in recipient-based encrypted source data that is the source data encrypted with the recipient public key of the particular recipient, wherein the device and the storage server are unable to decrypt the recipient-based encrypted source data;
performing, by the device, a transaction with the source;
detecting, by the device, a trigger to share the source data that is stored as the source-encrypted source data at the storage server with the particular recipient based on the transaction; and
causing, by the device, the request to share the source data with the particular recipient to be sent to the storage server in response to the trigger to cause the particular recipient to
i) receive the recipient-based encrypted source data,
ii) decrypt the recipient-based encrypted source data using a recipient private key of the particular recipient to obtain the source data, and
iii) process the decrypted source data.

### Claim 2 (depends on 1)

The method as in claim 1, wherein causing the request to share the source data with the particular recipient to be sent to the storage server comprises:
sending a request to the source to cause the source to establish and send the recipient-based rekeying key to the storage server.

### Claim 3 (depends on 2)

The method as in claim 2, wherein the request sent to the source is further to cause the source to send the request to share the source data with the particular recipient to the storage server.

### Claim 4 (depends on 1)

The method as in claim 1, wherein causing the request to share the source data with the particular recipient to be sent to the storage server comprises: sending the request to share the source data with the particular recipient to the storage server.

### Claim 5 (depends on 1)

The method as in claim 1, wherein the device is selected from a group consisting of:
one or more governmental devices;
one or more regulatory compliance devices;
one or more financial institution devices;
one or more retail company devices;
one or more auditing system devices;
one or more medical system devices; and
one or more user devices.

### Claim 6 (depends on 1)

The method as in claim 1, wherein the device is a financial institution device, and wherein the particular recipient is one of either a governmental device or a regulatory compliance device.

### Claim 7 (depends on 1)

The method as in claim 1, wherein the source data comprises personally identifying information, and wherein the trigger is based on a financial transaction.

### Claim 8 (depends on 1)

The method as in claim 1, wherein the trigger is unrelated to the source data.

### Claim 9 (depends on 1)

The method as in claim 1, wherein the data storage system further comprises an attestation server configured to attest to the source data and create a signed certificate based on attesting to the source data, the method further comprising:
receiving the signed certificate, the signed certificate associated with the source data; and
confirming that the source data has been attested to by the attestation server based on the signed certificate, without having access to the source data.

### Claim 10 (depends on 9)

The method as in claim 9, wherein the certificate is signed with a private key of the attestation server, and wherein the device confirms that the source data has been attested to by the attestation server based on applying a public key of the attestation server to the signed certificate.

### Claim 11 (depends on 9)

The method as in claim 9, wherein the source data attested to by the attestation server comprises personally identifying information.

### Claim 12 (depends on 9)

The method as in claim 9, wherein data integrity of the source data is attested to by the attestation server.

### Claim 13 (depends on 9)

The method as in claim 9, wherein the signed certificate is associated with the source data based on an identification (ID) that pairs the signed certificate to source data.

### Claim 14 (depends on 13)

The method as in claim 13, further comprising:
requesting, by a request with an ID, that the source obtain a signed certificate for the source data from an attestation server, wherein the ID that pairs the signed certificate to source data is the ID of the request.

### Claim 15 (depends on 9)

The method as in claim 9, further comprising: receiving the signed certificate from one of: a) the source, b) the storage server, or c) the attestation server.

### Claim 16 (depends on 1)

The method as in claim 1, further comprising:
requesting that the source obtain a signed certificate for the source data from an attestation server, the signed certificate to allow a verifying recipient to confirm that the source data has been attested to by the attestation server.

### Claim 17 (depends on 1)

The method as in claim 1, further comprising: instructing the source to collect the source data.

### Claim 18 (depends on 1)

The method as in claim 1, wherein the storage server is configured to confirm that the particular recipient is authorized to receive the source data and to deny access to the source data in response to the particular recipient not being authorized to receive the source data, the method further comprising:
sending one or more entries to the storage server for a list used by the storage server to determine authorizations for devices to receive the source data.

### Claim 19 (depends on 18)

The method as in claim 18, wherein the one or more entries are based on at least one of either:
the source and the particular recipient;
the source data and the particular recipient; or
the particular recipient itself.

### Claim 20 (depends on 18)

The method as in claim 18, wherein the one or more entries comprise one or more authorization policies.

### Claim 21 (depends on 1)

The method as in claim 1, wherein the request to share the source data with the particular recipient comprises a request identification, the method further comprising:
generating a report based on the transaction; and
sending the report and the request identification to the particular recipient, wherein the particular recipient connects the decrypted source data with the report based on the report having the same request identification as the decrypted source data.

### Claim 22 (depends on 1)

The method as in claim 1, further comprising:
generating a set of information based on the transaction; and
sharing the set of information, the shared set of information reaching an intermediate reporting device, the set of information readable by the intermediate reporting device;
wherein the intermediate reporting device is configured to:
receive the recipient-based encrypted source data, the recipient-based encrypted source data unreadable by the intermediate reporting device;
read the set of information;
create a report based on the set of information;
package the recipient-based encrypted source data with the report; and
send the packaged report and recipient-based encrypted source data to the particular recipient, wherein the particular recipient is caused to process the report with the source data decrypted from the recipient-based encrypted source data.

### Claim 23 (depends on 22)

The method as in claim 22, wherein sharing the set of information comprises sending the set of information to the intermediate reporting device.

### Claim 24 (depends on 22)

The method as in claim 22, wherein sharing the set of information comprises sending the set of information to the storage server to cause the storage server to send the set of information to the intermediate reporting device as encrypted information, the intermediate reporting device configured to decrypt the encrypted information using a private key of the intermediate reporting device to obtain the set of information.

### Claim 25 (depends on 22)

The method as in claim 22, wherein the recipient-based encrypted source data is associated with an attestation in response to the source data within the recipient-based encrypted source data being attested to by an attestation server.

### Claim 26 (depends on 22)

The method as in claim 22, wherein the set of information comprises financial transaction information, and wherein the source data within the recipient-based encrypted source data comprises identity information of an entity that performed the financial transaction.
