Secure data exchange matching across identity providers

By performing multiple encryption and decryption operations between the server computer and the user device, the problem of incomplete or undetermined accuracy of the identity provider data is solved, and the dependant party can securely obtain the accuracy of user attributes from multiple identity providers.

CN119563302APending Publication Date: 2025-03-04VISA INTERNATIONAL SERVICE ASSOCIATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380046493.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-06-15
Filing Date
2023-06-12
Publication Date
2025-03-04

AI Technical Summary

Technical Problem

In the interaction between the user and the dependent party, it is difficult for the prior art to effectively manage and verify the user's personal data, especially if the identity provider does not have the necessary data or the data accuracy is not determined.

Method used

Receive the request of the dependent party through the server computer, send a request to the first identity provider, receive and encrypt the first identity attribute, and send it to the user device after double encryption. The user device decrypts and re-encrypts it and returns to the server computer. The server computer then sends the encrypted information to the second identity provider for comparison, and finally sends a confirmation message to the dependent party.

Benefits of technology

It realizes that without exposing the plaintext identity attributes, the dependant party can securely obtain the accuracy of user attributes from multiple identity providers, ensuring the security and accuracy of data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119563302A_ABST
    Figure CN119563302A_ABST
Patent Text Reader

Abstract

A method includes receiving a first encrypted first identity attribute. A first double encrypted first identity attribute is formed by encrypting the first encrypted first identity attribute. A second double encrypted first identity attribute is formed by encrypting the first encrypted first identity attribute. The two double encrypted first identity attributes are sent to a user device, which removes the user encryption layer on each double encrypted first identity attribute to form a second encrypted first identity attribute and a third encrypted first identity attribute. An encryption layer is added to the second encrypted first identity attribute to form a third double encrypted first identity attribute, and the encryption layer is added to the third encrypted first identity attribute to form a fourth double encrypted first identity attribute. The server computer receives the third double encrypted first identity attribute and the fourth double encrypted first identity attribute, and sends the fourth double encrypted first identity attribute to the second identity provider computer. The second identity provider computer obtains the first identity attribute and compares it to the second identity attribute.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application is a PCT application claiming priority to U.S. Provisional Application No. 63 / 352,546, filed on June 15, 2022, which is incorporated herein by reference in its entirety. Background Art

[0003] Interactions between a user and a relying party may require the user to provide the relying party with access to the user's personal data before the relying party can perform any actions with respect to the user. Such personal data may be held by one or more identity providers. The transfer of such personal data is preferably done in a manner that minimizes disclosure to the parties.

[0004] Problems may arise if the identity provider contacted to obtain personal data or data derived therefrom does not have the necessary data, or if the relying party (or other party) is unsure of the accuracy of the identity provider's data. For example, a user may wish to purchase an item using credit, and the user's credit score may be relevant information for the relying party. However, an identity provider such as the Department of Motor Vehicles (DMV) may not have this information, but may have other information that may be useful to the relying party.

[0005] Embodiments of the present disclosure address this and other problems, individually and collectively. Summary of the invention

[0006] One embodiment of the present invention includes a method. A method includes: receiving, by a server computer, a request for personal data of a user from a relying party computer; sending, by the server computer, the request for the personal data of the user to a first identity provider computer; receiving, by the server computer, a first encrypted first identity attribute (c1_b) from the first identity provider computer, wherein the first encrypted first identity attribute (c1_b) is formed using a first public key associated with the user; encrypting, by the server computer, the first encrypted first identity attribute (c1_b) using a public key associated with a relying party operating the relying party computer to form a first doubly encrypted first identity attribute (c1_b r); encrypting, by the server computer, the first encrypted first identity attribute (c1_b) by using a public key associated with a second identity provider computer to form a second doubly encrypted first identity attribute (c1_bi); sending, by the server computer, the first doubly encrypted first identity attribute (c1_br) and the second doubly encrypted first identity attribute (c1_bi) to a user device, wherein the user device uses a first private key associated with the first public key to remove a user encryption layer from the first doubly encrypted first identity attribute (c1_br) and the second doubly encrypted first identity attribute (c1_bi) to form a second encrypted first identity attribute (c1 _r) and a third encrypted first identity attribute (c1_i), and thereafter adding an additional layer of encryption to the second encrypted first identity attribute (c1_r) using the public key associated with the relying party to form a third doubly encrypted first identity attribute (c1_rr'), and adding an additional layer of encryption to the third encrypted first identity attribute (c1_i) using the public key associated with the second identity provider computer to form a fourth doubly encrypted first identity attribute (c1_ii'); receiving, by the server computer, the third doubly encrypted first identity attribute (c1_rr') and the fourth doubly encrypted first identity attribute (c1_ii') from the user device ; sending, by the server computer, the fourth doubly encrypted first identity attribute (c1_ii') to the second identity provider computer, wherein the second identity provider computer uses a private key associated with the second identity provider computer to obtain the first identity attribute and then compares the first identity attribute (at1) with the second identity attribute (at2); receiving, by the server computer, a first message from the second identity provider computer after the server computer compares the first identity attribute (at1) with the second identity attribute (at2); and sending, by the server computer, a second message to the relying party computer after receiving the first message.

[0007] Another embodiment of the present invention includes a server computer, comprising: a processor; and a non-transitory computer-readable medium, the non-transitory computer-readable medium including instructions, the instructions executable by the processor to perform operations including: receiving a request for personal data of a user from a relying party computer; sending the request for the personal data of the user to a first identity provider computer; receiving a first encrypted first identity attribute (c1_b) from the first identity provider computer, wherein the first encrypted first identity attribute (c1_b) is formed using a first public key associated with the user; and transmitting the encrypted first identity attribute (c1_b) to a relying party operating the relying party computer by using a public key associated with the relying party. The method further comprises: encrypting the first encrypted first identity attribute (c1_b) to form a first doubly encrypted first identity attribute (c1_br); encrypting the first encrypted first identity attribute (c1_b) using a public key associated with a second identity provider computer to form a second doubly encrypted first identity attribute (c1_bi); sending the first doubly encrypted first identity attribute (c1_br) and the second doubly encrypted first identity attribute (c1_bi) to a user device, wherein the user device removes the first doubly encrypted first identity attribute (c1_br) and the second doubly encrypted first identity attribute using a first private key associated with the first public key. receiving the third doubly encrypted first identity attribute (c1_rr') from the user device; and and the fourth doubly encrypted first identity attribute (c1_ii'); sending the fourth doubly encrypted first identity attribute (c1_ii') to the second identity provider computer, wherein the second identity provider computer uses a private key associated with the second identity provider computer to obtain the first identity attribute and then compares the first identity attribute (at1) with the second identity attribute (at2); receiving a first message from the second identity provider computer after the server computer compares the first identity attribute (at1) with the second identity attribute (at2); and sending a second message to the relying party computer after receiving the first message.

[0008] Yet another embodiment of the present invention includes a system including the above-mentioned server computer.

[0009] A better understanding of the nature and advantages of embodiments of the present invention may be obtained by reference to the following detailed description and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1 A block diagram showing a secure data exchange system and an overlay flow for a secure data exchange method according to an embodiment.

[0011] Figure 2 A block diagram of a server computer according to an embodiment is shown.

[0012] Figure 3 A block diagram of an identity provider computer is shown according to an embodiment.

[0013] Figure 4 A block diagram is shown of an exemplary user device according to an embodiment.

[0014] Figure 5 A block diagram of a relying party computer is shown according to an embodiment. DETAILED DESCRIPTION

[0015] Before discussing the embodiments of the present disclosure, some terms may be described in further detail.

[0016] "User" may include an individual. In some embodiments, a user may be associated with one or more personal accounts and / or mobile devices. In some embodiments, a user may also be referred to as a cardholder, account holder, or consumer.

[0017] A "user device" may be a device operated by a user. Examples of user devices may include mobile phones, smart phones, cards, personal digital assistants (PDAs), laptop computers, desktop computers, server computers, thin client devices, tablet PCs, etc. In addition, the user device may be any type of wearable technology device, such as a watch, headphones, glasses, etc. The user device may include one or more processors capable of processing user input. The user device may also include one or more input sensors for receiving user input. As known in the art, there are a variety of input sensors capable of detecting user input, such as accelerometers, cameras, microphones, etc. The user input obtained by the input sensor may come from a variety of data input types, including but not limited to audio data, visual data, or biometric data. The user device may include any electronic device that can be operated by a user, which may also provide remote communication capabilities with a network. Examples of remote communication capabilities include using a mobile phone (wireless) network, a wireless data network (e.g., 3G, 4G or similar networks), Wi-Fi, Wi-Max, or any other communication medium that can provide access to a network (e.g., the Internet or a private network).

[0018] An "application" may be a computer program used for a specific purpose. Examples of applications may include secure data access applications, banking applications, digital wallet applications, event ticketing applications, loyalty rewards applications, etc.

[0019] "Interaction" may include mutual action or influence. "Interaction" may include communication, contact or exchange between parties, devices and / or entities. Exemplary interactions include transactions between two parties and data exchanges between two devices. In some embodiments, the interaction may include a user request to access secure data (e.g., secure data interaction), a user request to access a secure web page (e.g., secure web page interaction), a user request to access a secure location (e.g., secure location interaction), etc. In other embodiments, the interaction may include a payment transaction in which two devices may interact to facilitate payment.

[0020] A "relying party" may refer to an entity that may receive some form of (e.g., obfuscated) identity data and may rely on the identity data to perform some action. For example, a relying party may be a bar that wishes to determine whether a user is over twenty-one years old before providing alcohol to the relying party. Other examples of relying parties may include, but are not limited to, merchants, government agencies, transportation operators, educational institutions, etc. In some embodiments, a relying party may be a resource provider.

[0021] A "resource provider" may be any suitable entity that provides a resource (e.g., a good, a service, access to secure data, access to a location, etc.) during a transaction. For example, a resource providing entity may be a merchant, a venue operator, a building owner, a government entity, etc. A "merchant" may generally be an entity that participates in a transaction and may sell a good or service or provide access to a good or service.

[0022] An "identity provider" may be an entity that may maintain data (e.g., personal data) associated with a user. Exemplary identity providers may include, for example, a government agency, a financial institution, a telecommunications provider, or a digital wallet provider. An identity provider may operate an identity provider computer.

[0023] "Personal data" may be data associated with a specific user. A user's personal data may provide information about the user or things about the user. Examples of personal data may be the user's name, the user's date of birth, the user's contact information (e.g., email address, phone number, IP address, etc.), the user's home address, the account number of an account associated with the user (e.g., bank account number, student ID number, etc.), etc. In some embodiments, personal data may refer to assertions of raw personal data. For example, personal data may be birth data such as January 1, 1970, but an assertion stating that "the user is over 21 years old" may also be referred to as personal data. In some examples, specific examples of personal data and assertions associated with specific examples of personal data may be characterized as "identity attributes." Identity attributes may refer to characteristics that can be used to distinguish one user from another.

[0024] A "key" or "cryptographic key" may include a piece of information used in a cryptographic algorithm to transform input data into another representation. A cryptographic algorithm may be an encryption algorithm that transforms original data into an alternative representation, or a decryption algorithm that transforms encrypted information back into the original data. Examples of cryptographic algorithms may include Triple Data Encryption Standard (TDES), Data Encryption Standard (DES), Advanced Encryption Standard (AES), etc.

[0025] A "key pair" may include a pair of linked cryptographic keys. For example, a key pair may include a public key and a corresponding private key (which may also be referred to as a secret key). In a key pair, a first key (e.g., a public key) may be used to encrypt a message, and a second key (e.g., a private key) may be used to decrypt the encrypted message. In addition, a public key may be able to verify a digital signature created with a corresponding private key. Public keys may be distributed throughout a network so that messages signed with corresponding private keys can be verified. Public and private keys may be in any suitable format, including formats based on RSA or elliptic curve cryptography (ECC). In some embodiments, an asymmetric key pair algorithm may be used to generate a key pair.

[0026] A "processor" may include a device that processes something. In some embodiments, a processor may include any suitable one or more data computing devices. A processor may include one or more microprocessors that work together to achieve the desired functionality. A processor may include a CPU that includes at least one high-speed data processor that is sufficient to execute program components for executing user and / or system generated requests. The CPU may be a microprocessor such as AMD's Athlon, Duron, and / or Opteron; IBM and / or Motorola's PowerPC; IBM and Sony's Cell processor; Intel's Celeron, Itanium, Pentium, Xeon, and / or XScale; and / or similar processors.

[0027] "Memory" may be any suitable device or devices that can store electronic data. Suitable memory may include non-transitory computer-readable media that stores instructions executable by a processor to implement the desired method. Examples of memory may include one or more memory chips, disk drives, etc. Such memory may operate using any suitable electrical, optical, and / or magnetic operating modes.

[0028] A "server computer" may include a powerful computer or cluster of computers. For example, a server computer may be a large mainframe, a cluster of small computers, or a group of servers that work as a unit. In one example, a server computer may be a database server coupled to a web server. A server computer may include one or more computing devices and may use any of a variety of computing structures, arrangements, and compilations to service requests from one or more client computers.

[0029] Figure 1 A block diagram of a secure data exchange system according to an embodiment is shown. The system comprises a first identity provider computer 102 , a second identity provider computer 104 , a user device 106 , and a dependent computer 108 , each of which communicates with a server computer 100 .

[0030] The first identity provider computer 102 may be operated by a first identity operator and may hold a first identity attribute at1 of a user operating the user device 106. The second identity provider computer 104 may be operated by a second identity operator and may hold a second identity attribute at2 of a user operating the user device 106. Both the first identity attribute at1 and the second identity attribute at2 may be examples of personal data associated with the user operating the user device 106. The first identity attribute at1 may be in a first set of identity attributes stored by the first identity provider computer, and the second identity attribute at2 may be in a second set of identity attributes stored by the second identity provider computer. The first set of identity attributes and the second set of identity attributes may contain overlapping identity attributes. For example, the first set of identity attributes including the first identity attribute at1 may include the user's name and the user's home address, and the second set of identity attributes including the second identity attribute at2 may include the user's name, the user's home address, and the user's telephone number. The user device 106 may access an identity application (e.g., by installing the identity application on the user device 106, by accessing a website using the user device 106, etc.), which communicates with the server computer 100 to manage the identity attributes of the user operating the user device 106. The user may communicate with a relying party computer 108 operating the user device 106 .

[0031] Figure 1 The components in the secure data exchange can be in operative communication with each other through any suitable communication channel or communication network. Suitable communication networks can be any one and / or combination of the following: direct interconnection, the Internet, a local area network (LAN), a metropolitan area network (MAN), an operation mission as an Internet node (OMNI), a secure custom connection, a wide area network (WAN), a wireless network (e.g., using protocols such as, but not limited to, wireless application protocol (WAP), I-mode, etc.), etc. Secure communication protocols such as, but not limited to, file transfer protocol (FTP), hypertext transfer protocol (HTTP), and secure hypertext transfer protocol (HTTPS) can be used to send messages between computers, networks, and devices.

[0032] exist Figure 1In the example of FIG. 1 , user device 106, relying party computer 108, first identity provider computer 102, and second identity provider computer 104 may generate a cryptographic key pair using any suitable asymmetric exchange encryption scheme, such as the encryption schemes discussed in Adi Shamir et al., “Mental Poker”, The Mathematical Gardner., ed. David A. Klarner, Springer, Boston, MA. (1981) doi:10.1007 / 978-1-4684-6686-7_5; or Andre Gustavo Degraf Uchoa et al., “A Three-Pass Protocol for Cryptography Based on Padding for Wireless Networks”, 2007 4 th IEEE Consumer Communications and Networking Conference, 2007, pp. 287-291, doi: 10.1109 / CCNC.2007.63, the entire contents of which are incorporated herein by reference. The exchange encryption scheme allows decryption of the doubly encrypted data in any order.

[0033] Figure 1 The secure data exchange or privacy protection system of the system can allow a user to provide personal data from multiple identity provider computers to a relying party, or an assertion of personal data (e.g., an indication that the user belongs to a certain group, such as "the user is over 21 years old"). A relying party operating a relying party computer can obtain personal data from two different sources and thus ensure that the personal data is accurate. The server computer can advantageously coordinate communications between the identifier provider computer, the user device, and the relying party computer without having to know the user's plaintext personal data.

[0034] At step 0, a relying party operating a relying party computer 108 may send a public key associated with the relying party and a request to provide personal data of a user to the server computer 100 (e.g., a request to receive personal data of a user at the relying party computer 108). For example, the relying party computer 108 may send a request to provide personal data, such as the user's name, the user's home address, and the user's telephone number. In an embodiment, the public keys may be constructed so that they are associated (e.g., for doubly encrypted data, the encryption layers may be removed in any order, regardless of the encryption order).

[0035] In step 1 , after receiving a request from relying party computer 108 to provide personal data of a user, server computer 100 may request a first identity attribute at1 from first identity provider computer 102 .

[0036] In response to receiving the request for the first identity attribute at1, the first identity provider computer 102 may encrypt the first identity attribute at1 with a public key associated with the user to form a first encrypted first identity attribute c1_b, and send the first encrypted first identity attribute c1_b to the server computer 100. In some embodiments, a unique random number or initialization vector (IV) may be used in the encryption process.

[0037] In step 2, after receiving the first encrypted first identity attribute c1_b from the first identity provider computer 102, the server computer 100 may then double encrypt the first encrypted first identity attribute c1_b using the public key associated with the relying party to form a first double encrypted first identity attribute c1_br. Additionally, the server computer 100 may retrieve the public key associated with the second identity provider to double encrypt the first encrypted first identity attribute c1_b using the public key associated with the second identity provider to form a second double encrypted first identity attribute c1_bi. The server computer 100 may then send the first double encrypted first identity attribute c1_br, the second double encrypted first identity attribute c1_bi, and optionally the public key associated with the relying party and the public key associated with the second identity provider to the user device 106.

[0038] In step 3, after receiving the first doubly encrypted first identity attribute c1_br and the second doubly encrypted first identity attribute c1_bi from the server computer 100, the user device 106 may then remove the user encryption layer from both the first doubly encrypted first identity attribute c1_br and the second doubly encrypted first identity attribute c1_bi using the private key associated with the user. The resulting decryption may be the second encrypted first identity attribute c1_r (with the relying party encryption layer) and the third encrypted first identity attribute c1_i (with the second identity provider encryption layer). The user device 106 may then add an additional encryption layer to the second encrypted first identity attribute c1_r using the public key associated with the relying party to form the third doubly encrypted first identity attribute c1_rr'. Additionally, the user device 106 may then add an additional encryption layer to the third encrypted first identity attribute c1_i using the public key associated with the second identity provider to form the fourth doubly encrypted first identity attribute c1_ii'. User device 106 may then send the third doubly encrypted first identity attribute c1_rr′ and the fourth doubly encrypted first identity attribute c1_ii′ to server computer 100 .

[0039] In step 4 , after receiving the third doubly encrypted first identity attribute c1_rr′ and the fourth doubly encrypted first identity attribute c1_ii′ from user device 106 , the server computer may then send the fourth doubly encrypted first identity attribute c1_ii′ and optionally a public key associated with the relying party to second identity provider computer 104 .

[0040] At step 5, after receiving the fourth doubly encrypted first identity attribute c1_ii', second identity provider computer 104 may remove the two second identity provider encryption layers from the fourth doubly encrypted first identity attribute c1_ii' using a private key associated with the second identity provider to retrieve the first identity attribute at1. After retrieving the first identity attribute at1, second identity provider computer 104 may compare the first identity attribute at1 with the second identity attribute at2. For example, second identity provider computer 104 may compare and verify that the user's name and the user's address are the same in the first identity attribute at1 and the second identity attribute at2. After verifying that the first identity attribute at1 is similar to the second identity attribute at2, second identity provider computer 104 may encrypt the second identity attribute at2 using a public key associated with the relying party to form an encrypted second identity attribute c2_r. Second identity provider computer 104 may then send the encrypted second identity attribute c2_r to server computer 100 in a first message.

[0041] In other embodiments, the second identity attribute at2 may instead be encrypted using a public key associated with the user. In such embodiments, a process similar to steps 1-3 may be repeated using the second identity attribute at2 (e.g., c2_b) encrypted with the user's public key instead of the first encrypted first identity attribute c1_b.

[0042] At step 6 , after receiving the encrypted second identity attribute c2_r from second identity provider computer 104 , server computer 100 may send the third doubly encrypted first identity attribute c1_rr′ and the encrypted second identity attribute c2_r to relying party computer 108 in a second message.

[0043] After receiving the third doubly encrypted first identity attribute c1_rr' and the encrypted second identity attribute c2_r from server computer 100, relying party computer 108 may decrypt the third doubly encrypted first identity attribute c1_rr' and the encrypted second identity attribute c2_r using a private key associated with the relying party to retrieve the first identity attribute at1 and the second identity attribute at2. Once relying party computer 108 possesses the plaintext first identity attribute c1 and the plaintext second identity attribute c2, it may decide whether to provide the resource to the user of user device 106.

[0044] Other embodiments are also possible. For example, instead of sending the encrypted second attribute c2_r in step 5 after step 4, in other embodiments, an encrypted third attribute c3_r different from the encrypted second attribute c2_r may be sent from the second identity provider computer 104 to the server computer 100 and then to the relying party computer 108 in step 6. For example, the first attribute c1 may be a user's phone number stored by the first identity provider computer 102, the second attribute c2 may also be a user's phone number stored by the second identity provider computer 102, and the third attribute c3 may be a user's address stored by the second identity provider computer 104. After the second identity provider computer 104 determines that the first attribute c1 and the second attribute c2 (e.g., two phone numbers) match, the additional third attribute c3 may be sent in encrypted form to the server computer 100 in the first message and then to the relying party computer 108 in the second message. Thus, in this embodiment, the relying party computer 108 may receive attributes of a transaction from different identity provider computers in a secure manner. For example, the first identity attribute may be a user's phone number, and the third identity attribute may be a user's address, and both identity attributes may be necessary for the user to complete the transaction.

[0045] In another embodiment, after the second identity provider computer 104 compares the first identity attribute c1 and the second identity attribute c2 after step 4, the second identity provider computer 104 can generate a match score (e.g., match or no match). The second identity provider computer 104 can send the match score to the server computer 100 in a first message. The server computer 100 can send the match score to the relying party computer 108 in a second message. After the relying party receives the match score, it can decide whether to provide the requested resource to the user. The match score can indicate that one or more attributes of the user held at two different identity provider computers are the same, and the attributes are verified. In another embodiment, this step can be performed encrypted. Therefore, for example, the score is encrypted by the second identity provider under the key of the relying party and then sent to the server computer. The server computer then sends the score to the relying party, which can decrypt to determine the plaintext score.

[0046] For ease of explanation, Figure 1 The examples in the examples are not limited to the examples in ...

[0047] Figure 2 A block diagram of a server computer 200 according to an embodiment is shown. In some embodiments, the server computer 200 can be operated by a processing network, such as a payment processing network. The server computer 200 can also include a processor 202. The processor 202 can be coupled to a memory 204, a network interface 206, a computer-readable medium 208, and a database 210. The computer-readable medium 208 can include any suitable number and type of software modules.

[0048] The cryptographic module 208A may include code that causes the processor 202 to perform cryptographic operations such as encrypting and decrypting data, signing data and verifying signed data, cryptographic key generation, etc. The cryptographic module 208A and the processor 202 may generate cryptographic keys or cryptographic key pairs and use the cryptographic keys to encrypt and decrypt data. For example, the cryptographic module 208A and the processor 202 may encrypt or re-encrypt using cryptographic keys (e.g., public keys) from various entities including user devices, identity providers, and relying parties.

[0049] Key management module 208B may include code that enables processor 202 to manage cryptographic keys. For example, key management module 208B may allow server computer 200 to store cryptographic keys (e.g., public keys) from various entities including user devices, identity providers, and relying parties in database 210. Key management module 208B and processor 202 may store cryptographic keys retrieved from database 210 and provide them to cryptographic module 208A to perform the functions described herein.

[0050] Registration module 208C and processor 202 may register various entities in the system, including users of user devices, identity providers operating identity provider computers, and relying parties operating relying party computers.

[0051] The communication module 208D and the processor 202 can coordinate the communication between the various identity provider computers, user devices, and relying party computers in communication. The communication module 208D and the processor 202 can use a routing table stored in a database. The routing table can include an entry with the address of each computer and device that communicates with the server computer 200. The routing table can also store data associated with the computers and devices. The data can include cryptographic keys (e.g., public keys) associated with the computers and devices, user permissions associated with the computers and devices (e.g., user permissions to communicate with certain identity provider computers).

[0052] The computer-readable medium 208 may also include code that is executable by the processor 202 to perform operations including: receiving a request for personal data of a user from a relying party computer; sending a request for personal data of a user to a first identity provider computer; receiving a first encrypted first identity attribute (c1_b) from the first identity provider computer, wherein the first encrypted first identity attribute (c1_b) is formed using a first public key associated with the user; forming a first encrypted first identity attribute (c1_b) by encrypting the first encrypted first identity attribute (c1_b) using a public key associated with a relying party operating the relying party computer; a doubly encrypted first identity attribute (c1_br); forming a second doubly encrypted first identity attribute (c1_bi) by encrypting the first encrypted first identity attribute (c1_b) using a public key associated with a second identity provider computer; sending the first doubly encrypted first identity attribute (c1_br) and the second doubly encrypted first identity attribute (c1_bi) to a user device, wherein the user device uses a first private key associated with the first public key to remove a user encryption layer from the first doubly encrypted first identity attribute (c1_br) and the second doubly encrypted first identity attribute (c1_bi) to forming a second encrypted first identity attribute (c1_r) and a third encrypted first identity attribute (c1_i), and thereafter adding an additional layer of encryption to the second encrypted first identity attribute (c1_r) using a public key associated with the relying party to form a third doubly encrypted first identity attribute (c1_rr'), and adding an additional layer of encryption to the third encrypted first identity attribute (c1_i) using a public key associated with the second identity provider computer to form a fourth doubly encrypted first identity attribute (c1_ii'); receiving the third doubly encrypted first identity attribute (c1_rr') and the fourth doubly encrypted first identity attribute (c1_ii') from the user device; A server computer comprises a computer that has a first identity attribute (c1_ii') double encrypted; sends a fourth double encrypted first identity attribute (c1_ii') to a second identity provider computer, wherein the second identity provider computer uses a private key associated with the second identity provider computer to obtain the first identity attribute and then compares the first identity attribute (at1) to the second identity attribute (at2); receives a first message from the second identity provider computer after the server computer compares the first identity attribute (at1) to the second identity attribute (at2); and sends a second message to the relying party computer after receiving the first message.

[0053] The network interface 1006 may include an interface that may allow the identity provider computer 1000 to communicate with an external computer. The network interface 1006 may enable the identity provider computer 1000 to communicate data with another device, such as a user device, a relying party computer, an identity provider computer, an acquirer computer, a key management computer, etc. Some examples of the network interface 1006 may include a modem, a physical network interface (such as an Ethernet card or other network interface card (NIC)), a virtual network interface, a communication port, a Personal Computer Memory Card International Association (PCMCIA) slot and card, etc. The wireless protocols enabled by the network interface 1006 may include Wi-Fi TM . Data transmitted via the network interface 1006 may be in the form of a signal, which may be an electrical signal, an electromagnetic signal, an optical signal, or any other signal capable of being received by an external communication interface (collectively referred to as an "electronic signal" or "electronic message"). These electronic messages, which may include data or instructions, may be provided between the network interface 1006 and other devices via a communication path or channel. As described above, any suitable communication path or channel may be used, such as wire or cable, optical fiber, telephone line, cellular link, radio frequency (RF) link, WAN or LAN network, the Internet, or any other suitable medium.

[0054] Figure 3 A block diagram of an identity provider computer 300 according to an embodiment is shown. The identity provider computer 300 may be operated by an identity provider, which may hold identity attributes of a user. Examples of identity providers may include government agencies, financial institutions, digital wallets, etc. The identity provider computer 300 may include a processor 302. The processor 302 may be coupled to a memory 304, a network interface 306, a computer readable medium 308, and a database 310. The computer readable medium 308 may include any suitable number and type of software modules.

[0055] Memory 304 may be used to store data and code. Memory 304 may be coupled to processor 302 internally or externally (e.g., via a cloud-based data storage device) and may include any combination of volatile and / or non-volatile memory (e.g., RAM, DRAM, ROM, flash memory, or any other suitable memory device). Database 310 may be similar to memory 204 and may store ciphertext, such as encrypted personal data associated with a user.

[0056] The computer-readable medium 308 may include a plurality of software modules, including but not limited to an encryption module 308A, a key management module 308B, a consent management module 308C, and a communication module 308D.

[0057] The encryption module 308A may include code that causes the processor 302 to perform functions similar to those of the encryption module 208A described above, and that description is incorporated herein.

[0058] The key management module 308B may include code that causes the processor 302 to perform functions similar to the key management module 208B described above, and that description is incorporated herein.

[0059] The consent management module 308C may include code that causes the processor 302 to generate, modify, and delete consent for a user. For example, the consent management module 308C and the processor 302 may generate a consent request for the user to respond to. The consent management module 308C may then generate an access token indicating the level of consent and the length of time the user has consented. The consent management module 308C and the processor 302 may also receive a revocation request from the user device and modify the consent based on the revocation request.

[0060] The communication module 308D may include code that causes the processor 302 to generate messages, forward messages, receive messages, reformat messages, and / or otherwise communicate with other entities. In some embodiments, the communication module 308D may facilitate sending messages to and from user devices, relying party computers, server computers, and the like.

[0061] Figure 4 A block diagram of a user device 400 according to an embodiment is shown. The user device 400 may be operated by a user. The user device 400 may include a processor 402. The processor 402 may be coupled to a memory 404, a network interface 406, and a computer-readable medium 408. The computer-readable medium 408 may include any suitable number and type of software modules.

[0062] Memory 404 and network interface 406 may have the same or different features as memory 204 and network interface 206 previously described, and the descriptions of which are incorporated herein.

[0063] Computer-readable media 1108 may include a number of software modules including, but not limited to, an encryption module 408A, a digital identity application 408B, and a communication module 408C.

[0064] The encryption module 408A may include code that causes the processor 402 to perform encryption and decryption of data. The encryption module 408A may include code that causes the processor 402 to perform functions similar to those of the encryption module 208A described above, and that description is incorporated herein.

[0065] Digital identity application 408B may include code that causes processor 402 to maintain a digital identity account. Digital identity application 408B may store personal data associated with a user operating user device 400. Digital identity application 408B may allow user device 400 to communicate with a server computer. Digital identity application 408B may also allow a user to manage consents associated with a digital identity account. For example, if user device 400 sends personal data stored by digital identity application 408B and provides consent to a relying party to access the personal data, digital identity application 408B may be used to modify the consent.

[0066] The communication module 400C may have the same or different features as the communication module 208D previously described.

[0067] Figure 5 A block diagram of a relying party computer 500 according to an embodiment is shown. The relaying party computer 500 can be operated by a user. The relying party computer 500 may include a processor 502. The processor 502 may be coupled to a memory 504, a network interface 506, an input / output device 510, and a computer-readable medium 508. The input / output device 501 may include a touch screen, a keyboard, a speaker, a display, a microphone, and any other device suitable for providing output or receiving input. The computer-readable medium 508 may include any suitable number and type of software modules.

[0068] Memory 504 and network interface 506 may have the same or different features as memory 204 and network interface 206 previously described, and the descriptions of which are incorporated herein.

[0069] The computer readable medium 508 may include a plurality of software modules, including but not limited to an encryption module 508A, a digital identity application 508B, and a communication module 508C. The encryption module 508A, the digital identity application 508B, and the communication module 508C may be programmed to have Figure 4 The encryption module 408A, the digital identity application 408B and the communication module 408C in the user device 400 may have similar or different functions.

[0070] Embodiments of the present invention have several advantages. Embodiments of the present invention can protect the personal data of users in a distributed network while confirming its accuracy with different identity service providers. In addition, relying parties can obtain user attributes from multiple remote and distributed identity provider computers in a secure manner without exposing plaintext identity attributes.

[0071] Any software component or function described in this application can be implemented as a software code executed by a processor using any suitable computer language such as Java, C, C++, C#, Objective-C, Swift or a scripting language such as Perl or Python using, for example, conventional or object-oriented techniques. The software code can be stored as a series of instructions or commands on a computer-readable medium for storage and / or transmission, and suitable media include random access memory (RAM), read-only memory (ROM), magnetic media such as a hard drive or floppy disk, or optical media such as a compact disk (CD) or a digital versatile disk (DVD), flash memory, etc. The computer-readable medium can be any combination of such storage devices or transmission devices.

[0072] Such programs can also be encoded and sent using a carrier signal suitable for transmitting via a wired network, an optical network and / or a wireless network that meets multiple protocols, including the Internet. Therefore, a computer-readable medium according to an embodiment of the present invention can be created using a data signal encoded with such a program. The computer-readable medium encoded with program code can be encapsulated with a compatible device or (for example, downloaded via the Internet) is provided separately from other devices. Any such computer-readable medium can reside on or within a single computer product (for example, a hard drive, a CD or an entire computer system), and can be present on or within different computer products in a system or network. A computer system can include a monitor, a printer, or other suitable displays for providing any result mentioned herein to a user.

[0073] The above description is illustrative rather than restrictive. After reading this disclosure, many variations of the present invention will become apparent to those skilled in the art. Therefore, the scope of the present invention should not be determined with reference to the above description, but should be determined with reference to the pending claims together with their full scope or equivalents.

[0074] One or more features of any embodiment may be combined with one or more features of any other embodiment without departing from the scope of the present invention.

[0075] As used herein, the use of "a," "an," or "the" is intended to mean "at least one" unless clearly indicated to the contrary.

Claims

1. A method comprising: receiving, by the server computer, a request for the user's personal data from a relying party computer; sending, by the server computer, the request for the personal data of the user to a first identity provider computer; receiving, by the server computer from the first identity provider computer, a first encrypted first identity attribute, wherein the first encrypted first identity attribute is formed using a first public key associated with the user; forming, by the server computer, a first doubly encrypted first identity attribute by encrypting the first encrypted first identity attribute using a public key associated with a relying party operating the relying party computer; forming, by the server computer, a second doubly encrypted first identity attribute by encrypting the first encrypted first identity attribute using a public key associated with a second identity provider computer; sending, by the server computer, the first doubly encrypted first identity attribute and the second doubly encrypted first identity attribute to a user device, wherein the user device removes a user encryption layer from the first doubly encrypted first identity attribute and the second doubly encrypted first identity attribute using a first private key associated with the first public key to form a second encrypted first identity attribute and a third encrypted first identity attribute, and thereafter adds an additional encryption layer to the second encrypted first identity attribute using the public key associated with the relying party to form a third doubly encrypted first identity attribute, and adds an additional encryption layer to the third encrypted first identity attribute using the public key associated with the second identity provider computer to form a fourth doubly encrypted first identity attribute; receiving, by the server computer, the third doubly encrypted first identity attribute and the fourth doubly encrypted first identity attribute from the user device; sending, by the server computer, the fourth doubly encrypted first identity attribute to the second identity provider computer, wherein the second identity provider computer uses a private key associated with the second identity provider computer to obtain the first identity attribute and then compares the first identity attribute to the second identity attribute; receiving, by the server computer, a first message from the second identity provider computer after the server computer compares the first identity attribute with the second identity attribute; as well as A second message is sent by the server computer to the relying party computer after receiving the first message.

2. The method of claim 1 , wherein after the second identity provider computer compares the first identity attribute to the second identity attribute, the second identity provider computer encrypts the second identity attribute using the public key associated with the relying party to form an encrypted second identity attribute, wherein the first message includes the encrypted second identity attribute, and wherein the second message includes the third doubly encrypted first identity attribute and the encrypted second identity attribute, wherein the relying party computer obtains the first identity attribute and the second identity attribute using a private key associated with the relying party.

3. The method of claim 2, wherein the relying party computer determines that the first identity attribute matches the second identity attribute and then provides the resource to the user.

4. The method of claim 2, wherein the personal data comprises one or more of the user's name, the user's date of birth, the user's contact information, the user's home address, and / or an account number of an account associated with the user.

5. The method of claim 2, wherein the first message comprises an encrypted third attribute, the encrypted third attribute being formed by encrypting a third identity attribute using a relying party public key, and the second message comprises a message including the third double-encrypted first identity attribute and the encrypted third identity attribute, wherein the encrypted third identity attribute and the third double-encrypted first identity attribute are decrypted by the relying party computer using a relying party private key to obtain the first identity attribute and the third identity attribute, and a decision is made whether to provide a resource to the user based on the first identity attribute and the second identity attribute.

6. The method of claim 2, wherein the first identity provider computer is operated by a first identity provider and the second identity provider computer is associated with a second identity provider, the first identity provider and the second identity provider being different and each selected from the group consisting of: a government agency, a financial institution, a telecommunications provider, and a digital wallet provider.

7. The method of claim 6, wherein the first identity provider computer stores a first set of identity attributes for the user, the first set of identity attributes including the first identity attribute, and the second identity provider computer stores a second set of identity attributes for the user, the second set of identity attributes including the second identity attribute, the first set of identity attributes for the user and the second set of identity attributes for the user having a different number of identity attributes.

8. The method of claim 1, wherein after comparing the first identity attribute to the second identity attribute, the second identity provider computer generates a match score, and wherein the first message includes the match score and the second message also includes the match score.

9. The method of claim 8, wherein the relying party uses the matching score to determine whether a resource can be provided to the user.

10. The method of claim 1, wherein the server computer is remotely located relative to the user device, the relying party computer, the first identity provider computer, and the second identity provider computer.

11. A server computer, comprising: processor; as well as A non-transitory computer readable medium comprising instructions executable by the processor to perform operations comprising: receiving a request for the user's personal data from a relying party computer; sending said request for said personal data of said user to a first identity provider computer; receiving a first encrypted first identity attribute from the first identity provider computer, wherein the first encrypted first identity attribute is formed using a first public key associated with the user; forming a first doubly encrypted first identity attribute by encrypting the first encrypted first identity attribute using a public key associated with a relying party operating the relying party computer; forming a second doubly encrypted first identity attribute by encrypting the first encrypted first identity attribute using a public key associated with a second identity provider computer; sending the first doubly encrypted first identity attribute and the second doubly encrypted first identity attribute to a user device, wherein the user device removes a user encryption layer from the first doubly encrypted first identity attribute and the second doubly encrypted first identity attribute using a first private key associated with the first public key to form a second encrypted first identity attribute and a third encrypted first identity attribute, and thereafter adds an additional encryption layer to the second encrypted first identity attribute using the public key associated with the relying party to form a third doubly encrypted first identity attribute, and adds an additional encryption layer to the third encrypted first identity attribute using the public key associated with the second identity provider computer to form a fourth doubly encrypted first identity attribute; receiving the third double-encrypted first identity attribute and the fourth double-encrypted first identity attribute from the user device; sending the fourth doubly encrypted first identity attribute to the second identity provider computer, wherein the second identity provider computer uses a private key associated with the second identity provider computer to obtain the first identity attribute and then compares the first identity attribute to the second identity attribute; receiving a first message from the second identity provider computer after the server computer compares the first identity attribute to the second identity attribute; as well as A second message is sent to the relying party computer after receiving the first message.

12. The server computer of claim 11, wherein the operations further comprise: After the second identity provider computer compares the first identity attribute to the second identity attribute, the second identity provider computer encrypts the second identity attribute using the public key associated with the relying party to form an encrypted second identity attribute, wherein the first message includes the encrypted second identity attribute, and wherein the second message includes the third doubly encrypted first identity attribute and the encrypted second identity attribute, wherein the relying party computer obtains the first identity attribute and the second identity attribute using a private key associated with the relying party.

13. A system comprising: A server computer, the server computer comprising: Processor; and A non-transitory computer readable medium comprising instructions executable by the processor to perform operations comprising: receiving a request for the user's personal data from a relying party computer, sending said request for said personal data of said user to a first identity provider computer, receiving a first encrypted first identity attribute from the first identity provider computer, wherein the first encrypted first identity attribute is formed using a first public key associated with the user, forming a first doubly encrypted first identity attribute by encrypting the first encrypted first identity attribute using a public key associated with a relying party operating the relying party computer, forming a second doubly encrypted first identity attribute by encrypting the first encrypted first identity attribute using a public key associated with a second identity provider computer, sending the first doubly encrypted first identity attribute and the second doubly encrypted first identity attribute to a user device, wherein the user device removes a user encryption layer from the first doubly encrypted first identity attribute and the second doubly encrypted first identity attribute using a first private key associated with the first public key to form a second encrypted first identity attribute and a third encrypted first identity attribute, and thereafter adds an additional encryption layer to the second encrypted first identity attribute using the public key associated with the relying party to form a third doubly encrypted first identity attribute, and adds an additional encryption layer to the third encrypted first identity attribute using the public key associated with the second identity provider computer to form a fourth doubly encrypted first identity attribute, receiving the third doubly encrypted first identity attribute and the fourth doubly encrypted first identity attribute from the user device, sending the fourth doubly encrypted first identity attribute to the second identity provider computer, wherein the second identity provider computer uses a private key associated with the second identity provider computer to obtain the first identity attribute and then compares the first identity attribute to the second identity attribute, receiving a first message from the second identity provider computer after the server computer compares the first identity attribute to the second identity attribute; and A second message is sent to the relying party computer after receiving the first message.

14. The system of claim 13, wherein the operations further comprise: wherein after the server computer compares the first identity attribute to the second identity attribute, the second identity provider computer encrypts the second identity attribute using the public key associated with the relying party to form an encrypted second identity attribute, wherein the first message includes the encrypted second identity attribute, and wherein the second message includes the third doubly encrypted first identity attribute and the encrypted second identity attribute, wherein the relying party computer obtains the first identity attribute and the second identity attribute using a private key associated with the relying party.

15. The system of claim 13, further comprising: The user device communicates with the server computer.

16. The system of claim 14, further comprising: The relying party computer is in communication with the server computer.

17. The system of claim 15, further comprising: The first identity provider computer is in communication with the server computer.

18. The system of claim 16, further comprising: The second identity provider computer is in communication with the server computer.

19. The system of claim 13, wherein the server computer, the relying party computer, the user device, the first identity provider computer, and the second identity provider computer are remotely located relative to each other.

20. A system according to claim 13, a system according to claim 13, wherein the first identity attribute and the second identity attribute include one or more of the user's name, the user's date of birth, the user's contact information, the user's home address and / or an account number of an account associated with the user.