# US 12,192,204 B2 · System and method for storing and distributing consumer information

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

- Number: US 12,192,204 B2
- Document ID: US12192204B2
- Status: Granted
- Kind: B2
- Application number: 18/220,103
- Filed: 2023-07-10
- Published: 2023-11-09
- Granted: 2025-01-07
- Earliest claimed: 2018-06-28
- Assignees: Royal Bank of Canada
- Applicants: Royal Bank of Canada
- Inventors: Edison U. Ortiz; Arya Pourtabatabaie; Ambica Pawan Khandavilli; Margaret Inez Salter; Jordan Alexander Richards; Iustina-Miruna Vintila; Sarah Rachel Waigh Yean Wilkinson
- Web page: https://patentgrep.com/patent/US12192204B2

## CPC

- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/10: {for controlling access to devices or network resources}
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- 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/3234: {involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token (network architectures or network communication protocols for supporting authentication of entities using an additional device in a packet data network H04L63/0853)}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 63/0807: {using tickets, e.g. Kerberos (cryptographic mechanisms or cryptographic arrangements for entity authentication using tickets or tokens H04L9/3213)}
- H04L 9/3247: {involving digital signatures}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A computer implemented system for controlling access to data associated with an entity includes a data storage device having a computer memory, and one or more processors. The one or more processors are configured for: storing a secret key associated with the entity in a computer memory associated with the entity; upon receiving entity data, storing the entity data in the computer memory; and upon receiving an access grant signal, enabling communication of information relating to the entity data.

## Claims

### Claim 1

A computer implemented system for controlling access to data associated with an entity, the computer implemented system comprising:
a data storage device stored within a computer;
one or more processors within the computer configured for:
storing a secret key associated with the entity in a computer memory within the data storage device, wherein a public key corresponding to the secret key is stored on a client device associated with the entity;
upon receiving entity data associated with the entity, storing the entity data in the computer memory; and
upon receiving an access grant signal from the client device, the access grant signal defining the entity data to be accessed and a recipient of the entity data to be accessed and signed by the public key, enabling communication of information associated with the entity data, comprising a token or data derived from the entity data, to a recipient device in the form of data fields upon satisfaction of at least one verification condition by the recipient device in accordance with a verification sequence using the secret key stored in the computer memory.

### Claim 2 (depends on 1)

The system of claim 1, wherein the system comprises a trusted execution environment including a protected memory region, the protected memory region inaccessible to the one or more processors when operating outside the trusted execution environment; wherein at least one processor configured to operating inside the trusted execution environment is configured to:
generate the information associated with the entity data within the trusted execution environment, and passing the information associated with the entity data for communication outside the trusted execution environment.

### Claim 3 (depends on 1)

The system of claim 1, wherein the information associated with the entity data is a token, derivative data, or is encrypted data based on the entity data.

### Claim 4 (depends on 1)

The system of claim 1, wherein the entity data includes one or more token data objects received from or computed jointly in a multiparty protocol with an issuer computing device, the one or more token data objects generated using at least an issuer computing device private issuance key, the one or more token data objects each including one or more signed data elements representing at least one of the one or more characteristics of the entity.

### Claim 5 (depends on 1)

The system of claim 1, wherein the entity data is generated by an issuer computing device using the public key associated with the entity and a key associated with the issuer.

### Claim 6 (depends on 1)

The system of claim 1, wherein the one or more processors is configured for: generating a log of activity associated with the entity data.

### Claim 7 (depends on 1)

The system of claim 1, wherein the one or more processors are configured to set, and enforce access controls based on at least one of the secret and public keys associated with the entity.

### Claim 8 (depends on 7)

The system of claim 7, wherein the one or more processors are configured to generate one or more access tokens for accessing the computer memory.

### Claim 9 (depends on 1)

The system of claim 1, wherein the at least one verification condition is met when the one or more processors generate a verification request data message, and receive a proof data message from the recipient device.

### Claim 10 (depends on 9)

The system of claim 9, wherein the verification request data message includes at least a nonce c0; and a client computing device processor is configured to:
compute t=x−1 mod p, where x is an attribute value from the one or more token data objects, and p is an order of the discrete log group; t is a modular inverse of x mod p;
uniformly sample a first random number r and a second random number, r2, such that r1, r2∈p;
compute R=Cxr1hr2, where R is a commitment to random values r and r2, Cx is a commitment to attribute x, h is a group generator;
compute c=H (Cx, R, c0), where c is a proof challenge, based at least on the Fiat-Shamir Heuristic;
compute z1=ct+r1 and z2=−cty+r2, where z1 and z2 are proof responses based on a Sigma protocol; and
encapsulate and transmit the one or more proof data messages including R, z1 and z2 as data objects to the verifier computing device, such that the verifier computing device is able to compute c=H (Cx, R, c0) and confirm that gcR=Cxz1hz2, the verifier computing device controlling provisioning of access to a secured resource responsive to the confirmation that gcR=Cxz1hz2.

### Claim 11

A method for controlling access to data associated with an entity, the method comprising:
storing a secret key associated with the entity in computer memory within a data storage device, wherein a public key corresponding to the secret key is stored on a client device associated with the entity;
upon receiving entity data associated with the entity, storing the entity data in the computer memory; and
upon receiving an access grant signal from the client device, the access grant signal defining the entity data to be accessed and a recipient of the entity data to be accessed and signed by the public key, communicating information associated with the entity data, comprising a token or data derived from the entity data, to a recipient device in the form of data fields upon satisfaction of at least one verification condition by the recipient device in accordance with a verification sequence using the secret key stored in the computer memory.

### Claim 12 (depends on 11)

The method of claim 11, comprising: generating the information associated with the entity data within a trusted execution environment, and passing the information associated with the entity data for communication outside the trusted execution environment.

### Claim 13 (depends on 11)

The method of claim 11, wherein the information associated with the entity data is a token, derivative data, or is encrypted data based on the entity data.

### Claim 14 (depends on 11)

The method of claim 11, wherein the entity data includes one or more token data objects received from or computed jointly in a multiparty protocol with an issuer computing device, the one or more token data objects generated using at least an issuer computing device private issuance key, the one or more token data objects each including one or more signed data elements representing at least one of the one or more characteristics of the entity.

### Claim 15 (depends on 11)

The method of claim 11, wherein the entity data is generated by an issuer computing device using the public key associated with the entity and a key associated with the issuer.

### Claim 16 (depends on 11)

The method of claim 11, comprising generating a log of activity associated with the entity data.

### Claim 17 (depends on 11)

The method of claim 11, comprising enforcing access controls based on at least one of the secret and public key associated with the entity.

### Claim 18 (depends on 17)

The method of claim 17, comprising generate one or more access tokens for accessing the computer memory.

### Claim 19 (depends on 11)

The method of claim 11, wherein the at least one verification condition is met when the one or more processors generate a verification request data message, and receive a proof data message from the recipient device.

### Claim 20

A non-transitory computer readable medium or media having stored thereon machine interpretable instructions, which when executed, cause at least one processor to
store a secret key associated with the entity in a data storage device;
upon receiving entity data associated with the entity, store the entity data in the data storage device; and
upon receiving an access grant signal from the client device, the access grant signal defining the entity data to be accessed and a recipient of the entity data to be accessed and signed by the public key, communicating information associated with the entity data, comprising a token or data derived from the entity data, to a recipient device in the form of data fields upon satisfaction of at least one verification condition by the recipient device in accordance with a verification sequence using the secret key stored in the data storage device.
