A user data query method, system, and trusted unit
By combining query devices, trusted units, and institutional devices with an inadvertent transmission algorithm, the problem of information leakage when querying user data is solved, achieving efficient and secure user data querying and protecting confidential and private data.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-31
- Publication Date
- 2026-04-03
AI Technical Summary
How can we retrieve user data from financial institutions without disclosing information to meet anti-money laundering regulatory requirements, while protecting user privacy and confidential data?
By combining query devices, trusted units, and institutional devices with an inadvertent transmission algorithm, user data is encrypted and decrypted. The public and private keys stored in the trusted unit are used for data transmission, ensuring data security and privacy.
It enables efficient querying of target user data without disclosing confidential data and user privacy, improving query efficiency and reducing the risk of information leakage.
Smart Images

Figure CN115408714B_ABST
Abstract
Description
Technical Field
[0001] The embodiments in this specification belong to the field of computer technology, and in particular relate to a user data query method, system and trusted unit. Background Technology
[0002] Currently, regulatory authorities typically require institutions involved in significant transactions to fulfill their anti-money laundering obligations. In handling financial cases, relevant departments may need to access the transaction data of suspected users from these institutions. However, how to obtain user data from institutions without leaking information is a problem that current anti-money laundering solutions need to address. Summary of the Invention
[0003] The purpose of this invention is to provide a user data query scheme that combines a query device, a trusted unit, and an institutional device to implement an inadvertent transmission algorithm to query user data from the institutional device, thereby protecting confidential and private data.
[0004] The first aspect of this specification provides a method for querying user data, including:
[0005] The query device sends the first encrypted query data to the trusted unit, which is used to perform privacy calculations. The first encrypted query data is obtained by encrypting the first query data. The first query data includes user identifiers of k users, first order information of the k user identifiers, indication information for indicating the first user to be queried among the k users, and a random number. The trusted unit pre-stores k public keys of the target institution corresponding to the first user and second order information of the k public keys.
[0006] The trusted unit decrypts the first encrypted query data to obtain the first query data, determines the first public key corresponding to the indication information among the k public keys according to the first sequence information and the second sequence information, encrypts the random number using the first public key to obtain the first string, encrypts the second query data to obtain the second encrypted query data, the second query data including the user identifiers of the k users, the first sequence information and the first string; and sends the second encrypted query data to the institutional equipment of the target institution.
[0007] The institution / equipment decrypts the second encrypted query data to obtain the second query data, acquires the user data of the k users, and processes the user data of the k users based on the first string, the k private keys of the target institution, and the third order information of the k private keys using the inadvertent transmission OT algorithm to obtain k transformed user data; the k transformed user data and their fourth order information are sent to the query device, wherein the third order information and the fourth order information correspond to the second order information;
[0008] The query device obtains the user data of the first user based on the random number, the indication information, the k converted user data, and the fourth sequence information using the OT algorithm.
[0009] The second aspect of this specification provides a user data query method, executed by a trusted unit, including:
[0010] The system receives first encrypted query data, which is obtained by encrypting the first query data. The first query data includes user identifiers of k users, first order information of the k user identifiers, indication information for indicating the first user to be queried among the k users, and a random number. The trusted unit pre-stores k public keys of the target institution corresponding to the first user and second order information of the k public keys.
[0011] Decrypt the first ciphertext query data to obtain the first query data;
[0012] Based on the first sequence information and the second sequence information, determine the first public key among the k public keys that corresponds to the indication information;
[0013] The first public key is used to encrypt the random number to obtain a first string, and the second query data is then encrypted to obtain a second ciphertext query data. The second query data includes the user identifiers of the k users, the first order information, and the first string.
[0014] The second encrypted query data is sent to the target organization's equipment.
[0015] A third aspect of this specification provides a user data query system, including a query device, a trusted unit, and an institutional device for the target organization.
[0016] The query device is used to send the first encrypted query data to a trusted unit, which is used to perform privacy calculations. The first encrypted query data is obtained by encrypting the first query data. The first query data includes user identifiers of k users, first order information of the k user identifiers, indication information for indicating the first user to be queried among the k users, and a random number. The trusted unit pre-stores k public keys of the target institution corresponding to the first user and second order information of the k public keys.
[0017] The trusted unit is used to decrypt the first encrypted query data to obtain the first query data, determine the first public key corresponding to the indication information among the k public keys according to the first sequence information and the second sequence information, encrypt the random number using the first public key to obtain the first string, encrypt the second query data to obtain the second encrypted query data, the second query data including the user identifiers of the k users, the first sequence information and the first string; and send the second encrypted query data to the institutional equipment of the target institution.
[0018] The device is used to decrypt the second encrypted query data to obtain the second query data, acquire the user data of the k users, and process the user data of the k users based on the first string, the k private keys of the target institution, and the third order information of the k private keys through the unintentional transmission OT algorithm to obtain k transformed user data; the k transformed user data and their fourth order information are sent to the query device, wherein the third order information and the fourth order information correspond to the second order information;
[0019] The query device is also used to obtain the user data of the first user based on the random number, the indication information, the k converted user data and the fourth sequence information using the OT algorithm.
[0020] The fourth aspect of this specification provides a trusted element, comprising:
[0021] The receiving unit is used to receive first encrypted query data, which is obtained by encrypting the first query data. The first query data includes user identifiers of k users, first order information of the k user identifiers, indication information for indicating the first user to be queried among the k users, and a random number. The trusted unit pre-stores k public keys of the target institution corresponding to the first user and second order information of the k public keys.
[0022] The decryption unit is used to decrypt the first ciphertext query data to obtain the first query data.
[0023] A determining unit is configured to determine, based on the first sequence information and the second sequence information, the first public key among the k public keys that corresponds to the indication information;
[0024] The encryption unit is used to encrypt the random number using the first public key to obtain a first string, and to encrypt the second query data to obtain second ciphertext query data. The second query data includes the user identifiers of the k users, the first order information, and the first string.
[0025] The sending unit is used to send the second encrypted query data to the mechanism equipment of the target organization.
[0026] The fifth aspect of this specification provides a computer-readable storage medium having a computer program stored thereon, which, when executed in a computer, causes the computer to perform the method described in the second aspect.
[0027] A sixth aspect of this specification provides a computing device including a memory and a processor, wherein the memory stores executable code, and the processor, when executing the executable code, implements the method described in the second aspect.
[0028] In the embodiments of this specification, by having the query device, trusted unit, and institutional device execute the user data query method based on the inadvertent transmission algorithm, the institutional device cannot know which user's user data the query device is querying, and since the query device does not have the institutional device's k private keys, it is also unable to obtain the user data of other users among the k users besides the target user. Therefore, confidential data is protected from leakage, and user privacy data is also protected. Attached Figure Description
[0029] To more clearly illustrate the technical solutions of the embodiments in this specification, the drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this specification. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0030] Figure 1 This is a schematic diagram of the system in the embodiments of this specification;
[0031] Figure 2 This is a flowchart illustrating the method for server verification of the identity of an organization or department in the embodiments of this specification;
[0032] Figure 3 This is a flowchart illustrating the method for obtaining a user identifier on the client device side in the embodiments of this specification.
[0033] Figure 4This is a flowchart of the user data query method in the embodiments of this specification;
[0034] Figure 5 This is a flowchart of a user data query method in another embodiment of this specification;
[0035] Figure 6 This is an architecture diagram of a trusted unit in one of the embodiments of this specification. Detailed Implementation
[0036] To enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this specification will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this specification, and not all embodiments. Based on the embodiments in this specification, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of this specification.
[0037] In the process of handling financial cases by relevant departments, the transaction data of suspected users is crucial evidence in the entire process. These departments have the authority to query transaction data from various financial institutions and can request them to provide the transaction data of suspected users. Simultaneously, various financial institutions retain the transaction data of each user based on anti-money laundering compliance requirements. Currently, many central banks and large financial institutions in various countries are attempting to utilize blockchain technology in the anti-money laundering field to improve efficiency and accuracy and meet regulatory requirements. Meanwhile, data, as a resource, has liquidity and accessibility that are fundamental to many data applications and industrial development; however, privacy protection and confidential information protection during data exchange remain significant challenges for industrial development. The following explanation will continue to use the anti-money laundering field as an example.
[0038] Anti-Money Laundering (AML) refers to measures to prevent money laundering activities that conceal or disguise the source and nature of proceeds and profits from crimes such as drug trafficking, organized crime, terrorism, smuggling, corruption, bribery, and crimes disrupting financial order. Common money laundering channels widely involve various sectors including banking, insurance, securities, and real estate. Most AML efforts include three core aspects:
[0039] 1. Customer due diligence system. When establishing a business relationship or conducting transactions with a customer, entities obligated to combat money laundering shall verify and record the customer's identity based on valid identification documents, and update the customer's identity information in a timely manner during the duration of the business relationship.
[0040] 2. Suspicious Transaction Report (STR) System. Illegal fund flows are generally characterized by large sums of money and unusual transactions. Therefore, the law stipulates a STR system, requiring financial institutions to promptly report transactions that reach a certain threshold and unusual transactions lacking legitimate purpose to the anti-money laundering administrative authorities, as clues for investigating illegal and criminal activities.
[0041] 3. Customer Identity Information and Transaction Record Preservation System: Customer identity information and transaction record preservation refers to the legally mandated measures taken by financial institutions to retain customer identity information and transaction details for a certain period, which can provide evidence to support the investigation of illegal and criminal activities.
[0042] Customer identification systems, also known as "Know Your Customer" (KYC), refer to obtaining relevant customer identification information, including understanding the customer's identity when establishing business with the customer, understanding the purpose of the transaction, understanding the source and destination of funds, and understanding the customer's long-term business activities and financial transactions. It is the foundation of anti-money laundering.
[0043] In the relevant plan, investigators from relevant departments need to obtain the transaction data of suspect users from various financial institutions through offline procedures. This is inefficient and carries the risk of information leakage. In the event of information leakage, suspect users may be informed in advance, which increases the difficulty of the investigation.
[0044] Figure 1 This is a schematic diagram of the system in the embodiments of this specification. Figure 1 As shown, query device 100, institutional device 200, and institutional device 300 can be computing devices for example, relevant departments, institution B, and institution C, respectively. Institution B and institution C can be, for example, any of the following institutions: financial institutions, insurance institutions, trading institutions, etc. It is understood that the two institutional devices shown in the figure are examples, and in practice, multiple institutional devices may be included. The client of an anti-money laundering platform can be installed in the institutional devices. Each institutional device can directly receive user information, and the client can perform certain processing tasks based on this user information, such as reviewing suspicious transactions, thereby obtaining risk labels for each user. The query device can also install the client of an anti-money laundering platform for querying user transaction data in each institutional device through the platform. The anti-money laundering platform is, for example, composed of… Figure 1 The server 400 is provided.
[0045] Server 400 includes a trusted unit 40, which can be any computing unit capable of processing private or confidential data and protecting it from leakage. The trusted unit may include, for example, a Trusted Execution Environment (TEE) or computing devices within a trusted organization. Query device 100 can send a query request to server 400. This query request is processed by the trusted unit 40 and sent to the corresponding organizational device, causing the organizational device to return query result data to the server. Server 400 then returns the query result data to query device 100. Server 400 and trusted unit 40 can be connected to blockchain 500 to implement the user data query scheme in this embodiment. It is understood that... Figure 1 Although the trusted unit is shown to be located inside the server 400, the embodiments in this specification are not limited to this. The trusted unit may also be located in another computing device, and the server 400 may connect to the trusted unit by connecting to the computing device.
[0046] pass Figure 1 The system architecture shown eliminates the need for government departments to connect with each agency individually, transforming the existing many-to-many connection model into a many-to-one-to-many model, thus improving system efficiency.
[0047] In the embodiments described in this specification, a digital identity can be created for various institutions or departments by combining DIS with blockchain. Blockchain can provide a decentralized (or weakly centralized), immutable (or difficult to tamper with), and trustworthy distributed ledger, and can provide a secure, stable, transparent, auditable, and efficient way to record transactions and exchange data. A blockchain network can include multiple nodes. Generally, one or more nodes in a blockchain belong to a single participant. Broadly speaking, the more participants in a blockchain network, and the more authoritative the participants, the higher the trustworthiness of the blockchain network. Here, a blockchain network composed of multiple participants is referred to as a blockchain platform. With the help of a blockchain platform, institutions or departments can verify identities.
[0048] To utilize the distributed digital identity services provided by a blockchain platform, organizations or departments can register their identities on the platform. For example, an organization or department can create a public-private key pair, storing the private key securely, and create a distributed digital identity (also known as a decentralized identifier, DID). Organizations or departments can create their own DIDs or request them from a Decentralized Identity Service (DIS) system. DIS is a blockchain-based identity management solution that provides functions such as digital identity creation, verification, and management, thereby achieving standardized management and protection of entity data, ensuring the authenticity and efficiency of information flow, and solving challenges such as cross-organizational identity authentication and data collaboration. The DIS system can connect to the blockchain platform. Through the DIS system, a DID can be created for an organization or department, and the DID and its public key can be sent to the blockchain platform for storage. The created DID can also be returned to the organization or department. The public key can be included in a DID document (DIDdoc), which can be stored on the blockchain platform. DIS can create a DID for an organization or department based on its public key, for example, by calculating the public key using a hash function, or based on other information about the organization or department (which may or may not include the public key). The latter may require the organization or department to provide information beyond the public key. The organization or department can then provide verification functionality to prove its identity to other parties. Figure 2 This is a flowchart of a method for server verification of the identity of an organization or department, as described in the embodiments of this specification, including:
[0049] S201: The client device of an organization or department initiates a DID creation request to the DIS, the request including the public key of the organization or department.
[0050] S203: In response to the creation request, after verifying the information (e.g., qualifications, certificates, etc.) of the organization or department, the DIS creates a DID and a corresponding DIDdoc for the organization or department, and sends the DID and the corresponding DIDdoc to the blockchain platform for storage. The DIDdoc includes the public key of the organization or department. The DIDdoc also includes information such as the download address of a verifiable proof of the organization or department's identity.
[0051] S205: The blockchain platform receives a verification request from the server, the verification request including the DID of the organization or department.
[0052] S207: The blockchain platform retrieves the DIDdoc corresponding to the DID from its own storage and returns it to the server.
[0053] S209: The server generates a string and sends the string to the client device of the organization or department.
[0054] S211: The client device signs the string using the private key of the organization or department and returns it to the server.
[0055] S213: The server uses the public key in the previously received DIDdoc to verify whether the returned signature is correct. If correct, the identity of the organization or department is confirmed.
[0056] After verifying the identity of the organization or department, the server can execute the user data query scheme in the embodiments of this specification together with the query device and the organization's device.
[0057] Before sending a query request to the server, the query equipment of relevant departments can anonymize the user's identity information to obtain a user identifier, which can then be included in the query request. Organizational equipment can also anonymize the identity information of its own users, obtain a mapping table between user identity information and user identifiers, and thus determine the user identity information corresponding to the user identifier in the query request based on this mapping table.
[0058] Figure 3 This is a flowchart illustrating the method for obtaining a user identifier on the client device side in an embodiment of this specification. The client device can be a query device 100, or... Figure 1 Any one of the multiple mechanisms and devices in the system. The following description uses device 100 as an example.
[0059] like Figure 3 As shown, firstly, in step S301, the query device 100 obtains the user's identity information.
[0060] Within the relevant departments corresponding to query device 100, business personnel can generate user information files on query device 100 according to query needs. These files include the identity information of one or more users. The identity information includes, for example, name and ID number. When a relevant department needs to inadvertently transmit user data for querying the target user's data, it needs to provide the server with the user identifiers of multiple (e.g., k) users, including the target user. In this case, the user information file can include the identity information of multiple users. Specifically, the user information file can include multiple lines, each in the form of "name / certType / certNum", where name is the user's name, certType is the ID type, and certNum is the ID number. These three elements constitute the three essential elements of user identity information.
[0061] After the business personnel generate a user information file in the query device 100, they upload the user information file to the client's storage. After the client detects an update to the user information file, it can read the file line by line to obtain the identity information of each user.
[0062] In step S303, the query device 100 determines whether the user ID corresponding to the identity information is stored locally.
[0063] To protect user privacy, the user identity information in the user information file needs to be anonymized; that is, the user's identity information cannot be directly included in the query data sent from the query device 100. Specifically, for a line of user identity information in the user information file, the client in the query device 100 first determines whether the corresponding user ID is stored locally. For example, the client can determine whether the mapping table at a preset address on the hard drive includes the identity information and the corresponding user ID. If not, the client can execute step S305 to request the user's user ID from the server 400.
[0064] In step S305, the query device 100 requests the user's user ID from the server 400.
[0065] Specifically, since server 400 is not entirely trustworthy, query device 100 also needs to anonymize the user's three-factor information when requesting a user ID from server 400. Specifically, query device 100 can calculate the hash value of the three-factor information: hash1 = hash(name + certType + certNum), where "+" indicates sequential concatenation of the two data items. Then, query device 100 can send this hash value hash1 to server 400 to request the user ID corresponding to that hash value.
[0066] In step S307, server 400 returns the user's user ID to query device 100.
[0067] After receiving hash1, server 400 can use preset rules to calculate the ID corresponding to hash1.
[0068] In one implementation, to further enhance data security, server 400 can salt hash1, for example, by calculating hash(hash1+salt) and using the resulting hash value as the user ID, where salt is a pre-generated value by the server. Obtaining the user ID by salting hash1 prevents malicious parties from speculating on the three key information corresponding to hash1.
[0069] After determining the user ID, the server returns the user ID to the querying device 100.
[0070] In step S309, the user identity information and user ID associated with device 100 are queried.
[0071] By associating and storing user identity information and user ID in the query device 100, the query device 100 can directly obtain the user ID corresponding to the user from the local storage when querying the user's data again.
[0072] In step S311, the user ID is obtained by querying device 100.
[0073] If the query device 100 determines in step S303 that the user ID corresponding to the identity information is stored locally (e.g., in the mapping table mentioned above), it can directly execute step S311. Alternatively, the query device 100 can execute step S311 after executing step S309. After obtaining the user ID, the query device 100 can use it to generate a query request in the embodiments of this specification, and the specific process will be described in detail below.
[0074] Figure 4 This is a flowchart of the user data query method in the embodiments of this specification.
[0075] like Figure 4 As shown, in step S401, the query device 100 generates query data, which includes user identifiers and corresponding numbers of k users, the number n of the user to be queried and a random number q. The query data is then encrypted to obtain the first ciphertext query data.
[0076] The user identifier is, for example, through... Figure 3The anonymized user identifiers generated by the method shown can be unique user identification information such as user identity identifiers. The k user identifiers correspond one-to-one with k labels 1 to k, meaning each user identifier corresponds to a label. The user that the query device 100 wishes to query (referred to as the user to be queried in this document) corresponds, for example, to label n among labels 1 to k. The query device 100 also generates a random number q for use in the inadvertent transmission algorithm. Then, the query device 100 concatenates the user identifiers of the k users, the labels corresponding to each user identifier, the label n of the user to be queried, and the random number to obtain query data. This query data is then encrypted to obtain the first ciphertext query data. Specifically, the query device 100 can use the public key of a trusted unit to encrypt the query data to obtain the first ciphertext query data.
[0077] Trusted Execution Environments (TEEs) are examples of trusted execution environments (TEEs). A TEE is a secure extension of CPU hardware that is completely isolated from the outside world. Currently, the industry is paying close attention to TEE solutions, and almost all mainstream chip and software alliances have their own TEE solutions. Examples include software-based TPMs (Trusted Platform Modules) and hardware-based solutions such as Intel SGX (Software Guard Extensions), ARM Trustzone, and AMD PSP (Platform Security Processor). A TEE acts as a hardware black box; the code and data executed within it cannot be viewed even at the operating system level. Operations can only be performed through predefined interfaces in the code. In terms of efficiency, due to the black-box nature of the TEE, the computations performed within it are on plaintext data, rather than the complex cryptographic operations of homomorphic encryption, resulting in almost no loss of efficiency.
[0078] Taking Intel SGX (hereinafter referred to as SGX) technology as an example, blockchain nodes can create enclaves (enclaves or enclaves) as TEEs based on SGX technology. The server can utilize the newly added processor instructions in the CPU to allocate a portion of memory as an EPC (Enclave Page Cache) to house the aforementioned enclaves. The memory area corresponding to the EPC is encrypted by the CPU's internal Memory Encryption Engine (MEE). The content in this memory area (code and data within the enclave) can only be decrypted within the CPU core, and the encryption and decryption keys are only generated and stored in the CPU when the EPC is started. As can be seen, the security boundary of an enclave only includes itself and the CPU. Neither privileged nor non-privileged software can access the enclave. Even operating system administrators and VMMs (Virtual Machine Monitors, or Hypervisors) cannot affect the code and data within the enclave, thus providing extremely high security. Furthermore, given this security guarantee, the CPU can process plaintext data within the enclave with extremely high computational efficiency, thereby balancing data security and computational efficiency. Data entering and leaving the TEE can be encrypted, thus ensuring data privacy.
[0079] Before being used, the TEE can prove its trustworthiness to the user. This process of proving trustworthiness may involve a remote verification report. The remote verification report is generated during the remote verification process of the TEE. It can be generated by an authoritative authentication server after verifying the self-recommendation information generated by the TEE. This remote verification report can be used to demonstrate that the TEE is trustworthy.
[0080] For example, before using the TEE's public key for encryption, the query device 100 can first verify whether the TEE is trustworthy. Specifically, the query device 100 can challenge the TEE and receive a remote verification report returned by the TEE. After obtaining the remote verification report, the query device 100 can verify the signature of the remote verification report using the public key of the authoritative authentication server. If the verification passes, the TEE can be confirmed as trustworthy. Specifically, after receiving the verification request, the TEE generates authentication information based on its internal mechanism and sends the authentication information and the TEE's hardware public key to the query device 100. The authentication information includes, for example, the TEE's signature information, hardware information, and software information. The signature information is generated, for example, using the TEE's hardware key; the hardware information includes, for example, various hardware specifications, such as CPU clock speed, memory capacity, etc.; the software information includes the code hash value, code name, version, and runtime logs of each program. As those skilled in the art know, a TEE can perform "measurements" on the programs running within it through memory hardware, such as obtaining the program's code hash value, the hash value of the program's memory usage at a specific execution point, etc., and include the "measurement" information of the program in the authentication information. Since this "measurement" information is executed by the TEE itself (memory hardware) without involving any software or operating system, it is authentic and reliable. After receiving the authentication information, the query device 100 can send the authentication information to the TEE's remote authentication server, thereby receiving a remote verification report of the TEE from the server. The remote verification report includes the TEE's authentication and verification of the programs executed within the TEE, etc. Thus, based on the remote verification report, the query device 100 can determine that the TEE is trustworthy, and the query results through the TEE are trustworthy. Simultaneously, the query device 100 can locally store the TEE's hardware public key for subsequent verification of the TEE's signature. The TEE stores a public-private key pair, with the private key securely stored within the TEE. The content transmitted by the TEE can be signed using the private key stored within the TEE, thereby proving that it was the result executed by the TEE.
[0081] It is understood that the query device 100 is not limited to using the public key of the trusted unit to encrypt the query data. For example, the trusted unit and the query device may negotiate other asymmetric or symmetric keys to encrypt the query data.
[0082] In step S403, the query device 100 sends the first encrypted query data to the server 400.
[0083] Specifically, query device 100 can use its own private key to sign the first encrypted query data and send the query device 100's DID (e.g., DIDa), the first encrypted query data, and the signature to server 400. Server 400 can use the pre-obtained public key of query device 100 to verify the signature. After successful verification, it can be determined that the first encrypted query data was sent by the relevant department.
[0084] In step S405, server 400 provides the trusted unit with the first encrypted query data and k public keys and corresponding labels of the target organization.
[0085] In one implementation, the target organization can be one or more pre-agreed organizations. In another implementation, the query device 100 can also send the organization identifier of a specific target organization along with the first encrypted query data to the server 400. The target organization may include, for example, organization B, which can initialize k pairs of public and private keys in the organization device 200, each pair corresponding to a number from 1 to k, for use in unintended transmission.
[0086] Server 400 can be accessed via Figure 3 After the process shown verifies the DID of organization B, the public key of the DIDb of organization B can be obtained from the blockchain during the verification process. In addition, the server 400 also receives the above-mentioned k pairs of public and private keys from the organization device 200.
[0087] In one implementation, to provide the trusted unit with first encrypted query data and k public keys and their corresponding identifiers, server 400 can send transaction Tx1 to the blockchain. Transaction Tx1 includes the first encrypted query data and the target institution's k public keys and their corresponding identifiers. After successful execution of transaction Tx1 in the blockchain, transaction Tx1 is stored, and its hash value is returned to server 400. Server 400 can then send the hash value of transaction Tx1 to the trusted unit, allowing the trusted unit to retrieve the first encrypted query data and the k public keys and their identifiers from the blockchain based on this hash value. In this way, institutional device 200 can also retrieve transaction Tx1 from the blockchain and verify the correctness of the k public keys and their identifiers, thus ensuring that server 400 provides the trusted unit with the correct k public keys and their identifiers.
[0088] In another implementation, server 400 can store the first encrypted query data and k public keys and their identifiers of the target institution in a storage device, and provide the storage address to trusted unit 40. Trusted unit 40 can then read the first encrypted query data and the k public keys and their identifiers of the target institution from this storage address. Trusted unit 40 can also simultaneously store the first encrypted query data and the k public keys and their identifiers of the target institution in a blockchain, so that institution device 200 can verify the correctness of the k public keys and their identifiers, thereby ensuring that server 400 provides the trusted unit 40 with the correct k public keys and their identifiers.
[0089] In step S407, the trusted unit 40 decrypts the first ciphertext query data to obtain the query data, encrypts the random number q using the nth public key to obtain the string p, and encrypts the data including the user identifiers and their numbers of k users and the string p to obtain the second ciphertext query data.
[0090] Taking Trusted Element 40 as a TEE as an example, the first encrypted query data can be generated by encrypting it using the TEE's public key, as described above. The TEE can then decrypt the first encrypted query data using its own private key to obtain the query data. Next, the TEE can encrypt a random number q using the nth public key out of k public keys, based on the user identifier n in the query data, to obtain the string p. Then, the TEE can encrypt the string p containing "user identifiers and their corresponding numbers of k users" to obtain the second encrypted query data, where "||" indicates data concatenation. Specifically, the TEE can use the pre-obtained public key of the DIDb of the institutional device 200 to encrypt the above data to obtain the second encrypted query data. For example, the public key of the DIDb of the institutional device 200 can be provided to the TEE in advance by the server 400.
[0091] In step S409, the trusted unit 40 provides the second encrypted query data to the server 400.
[0092] Specifically, the trusted unit 40 can store the second encrypted query data in a storage device and send the storage address to the server 400, thereby enabling the storage 400 to read the second encrypted query data from that storage address. Alternatively, the trusted unit 40 can directly send the second encrypted query data to the server 400.
[0093] In step S411, server 400 sends the second encrypted query data to mechanism device 200.
[0094] As can be understood, this description takes institutional device 200 as an example. In the case of multiple target devices, server 400 can use the public key of each target device to encrypt the data, obtain multiple second ciphertext query data, and send each second ciphertext query data to the corresponding target device, so that each target device can perform an unintentional transmission process.
[0095] In step S413, the mechanism device 200 decrypts the second encrypted query data to obtain "user identifiers and corresponding numbers of k users || string p". Then, using the k private keys from the aforementioned k public-private key pairs, string p is decrypted to obtain k strings s. i (i∈1~k), where i is the identifier of each private key (i.e., the order information of the k private keys), and the user data m of the k users is obtained based on the user identifiers of the k users. i Based on s i For m i The data is processed to obtain k converted user data points (ms). i In this way, k transformed user data ms are generated. i Subsequently, 'i' also became the label for various user data transformations.
[0096] Among them, in k strings s i In this example, since string p is encrypted using the nth public key, decrypting string p using the nth private key yields string s. n =q, k converted user data ms i ms in n To achieve this by using q-based m n The transformed user data is obtained through processing. This processing may include, for example, XOR operations or other operations or combination operations, which are not limited here. When the user is identified as... Figure 3 In the case of the de-identified user identifier obtained by the process shown, the mechanism device 200 can also obtain the user identity information corresponding to the user identifier according to the pre-stored mapping table between user identity information and user identifier, and obtain the user's user data based on the user identity information.
[0097] In step S415, the mechanism device 200 will convert k user data ms i The corresponding label i is sent to server 400.
[0098] Institutional device 200 can also use the public key of query device 100 to query k transformed user data ms i The encrypted data is then encrypted using its corresponding label i and sent to server 400.
[0099] In step S417, server 400 will convert k user data msi The corresponding label i is sent to the query device 100.
[0100] In step S419, the query device 100 receives k converted user data ms i After its corresponding label i, read the ms value. n Based on random number q for ms n The data is processed to obtain the user data of the nth user. This processing is the inverse operation of the processing in step S413 above (e.g., XOR operation), to be used for processing data from ms based on a random number q. n Restore the user data for the nth user. (For data excluding ms) n Other converted user data, because the query device 100 does not have a corresponding string s for other converted user data. i (i is a value other than n from 1 to k), therefore the original user data corresponding to the converted user data cannot be obtained, that is, the query device 100 can only read the user data of the target user.
[0101] In the embodiments described in this specification, by combining a server and a TEE to execute a user data query method based on an inadvertent transmission algorithm, the institutional device cannot know which user's user data the query device is querying, and the query device, lacking the k private keys, cannot obtain the k strings s. i The string contains strings other than q, so it is impossible to reconstruct the user data of all users except the nth user out of the k users. Therefore, confidential data is protected from leakage, and user privacy data is also protected.
[0102] Figure 4 While the embodiments of this specification illustrate a user data query scheme executed by combining a server and a trusted unit, the embodiments of this specification are not limited to this, and may also include, for example, [examples of other schemes]. Figure 5 The method shown performs user data query by querying a trusted unit between query device 100 and mechanism device 200.
[0103] Figure 5 This is a flowchart illustrating another embodiment of the user data query method in this specification.
[0104] like Figure 5 As shown, in step S501, the query device 100 first generates query data, which includes user identifiers of k users and the order information of the k user identifiers, indication information of the user to be queried and a random number q. The query data is then encrypted to obtain the first ciphertext query data.
[0105] Referring to the description of step S401 above, the order information of the k user identifiers can be represented by labels 1 to k, for example, and the indication information of the user to be queried can be label n among labels 1 to k, so as to indicate that the nth user identifier among the k user identifiers is the user identifier of the user to be queried.
[0106] In step S503, the query device 100 sends the first encrypted query data to the trusted unit 40.
[0107] The query device 100 can directly send the first encrypted query data to the trusted unit 40, or it can store the first encrypted query data in a storage device and send the storage address to the trusted unit 40 so that the trusted unit 40 can read the first encrypted query data based on the address.
[0108] In step S505, the trusted unit 40 decrypts the first ciphertext query data to obtain query data, determines the public key for encryption from the k public keys of the institution according to the instruction information, encrypts the random number to obtain the string p, and encrypts the data including the user identifiers of k users, their order information and the string p to obtain the second ciphertext query data.
[0109] Trusted unit 40 can pre-obtain the public key of institution B's DIDb from the blockchain, and obtain the k public keys and their order information from the k public-private key pairs from institution device 200. This order information can be, for example, labels 1 to k. Based on the indication information "label n", the trusted unit can determine which of the k public keys to use, and thus use the nth public key to encrypt the random number q to obtain the string p. It can also use the public key of institution B's DIDb to encrypt "user identifiers of k users and their corresponding labels || string p" to obtain the second ciphertext query data.
[0110] In step S507, the trusted unit 40 sends the second encrypted query data to the mechanism device 200.
[0111] In step S509, the mechanism device 200 decrypts the second encrypted query data to obtain the string "user identifiers and corresponding labels of k users || p", and retrieves the user data m of the k users. i Based on k private keys and their order information, string p is used to pair k user data m i The data is processed to obtain k converted user data points (ms). i .
[0112] Specifically, the institution uses the k private keys from the aforementioned k public-private key pairs to decrypt string p, obtaining k strings s. i(i∈1~k), where i is the label of each private key (i.e., the order information of each private key), and the labels of the k private keys are consistent with the labels of their corresponding k public keys. User data m of the k users is obtained based on the user identifiers of the k users. i Based on s i For m i The data is processed to obtain k converted user data points (ms). i Among them, k converted user data ms i The "i" in the code represents the sequence information (i.e., label) of the k transformed user data, and this label is consistent with the label of the private key corresponding to each transformed user data. This processing may include operations such as XOR.
[0113] In step S511, the mechanism device 200 will convert k user data ms i The sequence information is sent to the query device 100.
[0114] Among them, k converted user data ms i The order information can also be identified by the label i, which is related to the k transformed user data ms. i The k private keys have the same label, which is the same as the k public keys corresponding to those k private keys.
[0115] In step S513, the query device uses a random number q, the indication information of the user to be queried, and k converted user data ms as the basis for the query. i The user data of the user to be queried is obtained by taking the corresponding sequence information.
[0116] Specifically, query device 100 receives k converted user data milliseconds. i After its corresponding label i, read the ms value. n Based on random number q for ms n The process is performed to obtain the user data of the nth user. This step is the inverse of the process in step S509, for example, the inverse operation of the XOR operation.
[0117] In the embodiments described in this specification, a user data query method is executed by a trusted unit based on an inadvertent transmission algorithm. The institutional device cannot know which user's user data the query device is querying, and the query device, lacking the k private keys, cannot obtain the k strings s. i The string contains strings other than q, so it is impossible to reconstruct the user data of all users except the nth user out of the k users. Therefore, confidential data is protected from leakage, and user privacy data is also protected.
[0118] Figure 6This is an architectural diagram of a trusted unit in an embodiment of this specification, the trusted unit being used to perform, for example... Figure 3 or Figure 4 The method shown includes:
[0119] The receiving unit 61 is used to receive first encrypted query data, which is obtained by encrypting the first query data. The first query data includes user identifiers of k users, first order information of the k user identifiers, indication information for indicating the first user to be queried among the k users, and a random number. The trusted unit pre-stores k public keys of the target institution corresponding to the first user and second order information of the k public keys.
[0120] Decryption unit 62 is used to decrypt the first ciphertext query data to obtain the first query data;
[0121] Determining unit 63 is configured to determine, based on the first sequence information and the second sequence information, the first public key among the k public keys that corresponds to the indication information;
[0122] Encryption unit 64 is used to encrypt the random number using the first public key to obtain a first string, and to encrypt the second query data to obtain second ciphertext query data. The second query data includes the user identifiers of the k users, the first order information, and the first string.
[0123] The sending unit 65 is used to send the second encrypted query data to the mechanism equipment of the target organization.
[0124] This specification also provides a computer-readable storage medium having a computer program stored thereon, which, when executed in a computer, causes the computer to perform actions such as... Figures 2 to 5 The method shown.
[0125] This specification also provides a TEE (Technical Equipment for Executable Execution), including a memory and a processor. The memory stores executable code, and when the processor executes the executable code, it implements... Figures 2 to 5 The method shown.
[0126] This specification also provides a server, including a memory and a processor, wherein the memory stores executable code, and when the processor executes the executable code, it implements... Figures 2 to 4 The method shown.
[0127] In the 1990s, improvements to a technology could be clearly distinguished as either hardware improvements (e.g., improvements to the circuit structure of diodes, transistors, switches, etc.) or software improvements (improvements to the methodology). However, with technological advancements, many methodological improvements today can be considered direct improvements to the hardware circuit structure. Designers almost always obtain the corresponding hardware circuit structure by programming the improved methodology into the hardware circuit. Therefore, it cannot be said that a methodological improvement cannot be implemented using hardware physical modules. For example, a Programmable Logic Device (PLD) (such as a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic function is determined by the user programming the device. Designers can program and "integrate" a digital system onto a PLD themselves, without needing chip manufacturers to design and manufacture dedicated integrated circuit chips. Furthermore, nowadays, instead of manually manufacturing integrated circuit chips, this programming is mostly implemented using "logic compiler" software. Similar to the software compiler used in program development, the original code before compilation must be written in a specific programming language, called a Hardware Description Language (HDL). There are many HDLs, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language). Currently, the most commonly used are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should understand that by simply performing some logic programming on the method flow using one of these hardware description languages and programming it into an integrated circuit, the hardware circuit implementing the logical method flow can be easily obtained.
[0128] The controller can be implemented in any suitable manner. For example, it can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. A memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also recognize that, in addition to implementing the controller in purely computer-readable program code form, the same functionality can be achieved by logically programming the method steps to make the controller take the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers. Therefore, such a controller can be considered a hardware component, and the means included therein for implementing various functions can also be considered as structures within the hardware component. Alternatively, the means for implementing various functions can be considered as both software modules implementing the method and structures within the hardware component.
[0129] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or physical entities, or by products with certain functions. A typical implementation device is a server system. Of course, this application does not exclude the possibility that, with the future development of computer technology, the computer implementing the functions of the above embodiments can be, for example, a personal computer, a laptop computer, an in-vehicle human-machine interaction device, a cellular phone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or any combination of these devices.
[0130] While one or more embodiments of this specification provide the operational steps of the methods described in the embodiments or flowcharts, more or fewer operational steps may be included based on conventional or non-inventive means. The order of steps listed in the embodiments is merely one possible order of execution among many steps and does not represent the only possible order. In actual device or end product execution, the methods shown in the embodiments or drawings may be executed sequentially or in parallel (e.g., in a parallel processor or multi-threaded processing environment, or even a distributed data processing environment). The terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, product, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, product, or apparatus. Without further limitations, the presence of other identical or equivalent elements in the process, method, product, or apparatus that includes the elements is not excluded. For example, the use of terms such as "first," "second," etc., is to denote names and does not indicate any particular order.
[0131] For ease of description, the above devices are described in terms of function, divided into various modules. Of course, when implementing one or more of these specifications, the functions of each module can be implemented in the same or more software and / or hardware, or a module that performs the same function can be implemented by a combination of multiple sub-modules or sub-units. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division; in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, or indirect coupling or communication connection between devices or units, and may be electrical, mechanical, or other forms.
[0132] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0133] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0134] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the functions specified in one or more boxes. In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0135] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0136] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information by any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic disk storage, graphene storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0137] Those skilled in the art will understand that one or more embodiments of this specification can be provided as a method, system, or computer program product. Therefore, one or more embodiments of this specification may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, one or more embodiments of this specification may take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0138] One or more embodiments of this specification can be described in the general context of computer-executable instructions, such as program modules, that are executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform a particular task or implement a particular abstract data type. One or more embodiments of this specification can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In a distributed computing environment, program modules can reside in local and remote computer storage media, including storage devices.
[0139] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, system embodiments are basically similar to method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments. In the description of this specification, the terms "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., refer to specific features, structures, materials, or characteristics described in connection with that embodiment or example, which are included in at least one embodiment or example of this specification. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described can be combined in any suitable manner in one or more embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this specification and the features of different embodiments or examples.
[0140] The above description is merely an embodiment of one or more embodiments of this specification and is not intended to limit the scope of these embodiments. Various modifications and variations can be made to these embodiments by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this specification should be included within the scope of the claims.
Claims
1. A user data query method, comprising: The query device sends the first encrypted query data to the trusted unit, which is used to perform privacy data processing. The first encrypted query data is obtained by encrypting the first query data. The first query data includes user identifiers of k users, first order information of the k user identifiers, indication information for indicating the first user to be queried among the k users, and a random number. The trusted unit pre-stores k public keys of the target institution corresponding to the first user and second order information of the k public keys. The trusted unit decrypts the first ciphertext query data to obtain the first query data, determines the first public key corresponding to the indication information among the k public keys according to the first order information and the second order information, encrypts the random number using the first public key to obtain the first string, and encrypts the second query data to obtain the second ciphertext query data. The second query data includes the user identifiers of the k users, the first order information, and the first string. The second encrypted query data is sent to the target organization's equipment; The institution decrypts the second encrypted query data to obtain the second query data, acquires the user data of the k users, and processes the user data of the k users based on the first string, the k private keys of the target institution, and the third order information of the k private keys using the inadvertent transmission OT algorithm to obtain k transformed user data; the k transformed user data and their fourth order information are sent to the query device, wherein the third order information and the fourth order information correspond to the second order information; The query device obtains the user data of the first user based on the random number, the indication information, the k converted user data, and the fourth sequence information using the OT algorithm.
2. The method according to claim 1, wherein the institutional equipment processes user data of k users based on the first string, k private keys of the target institution, and the third sequence information through the unintentional transmission OT algorithm, comprising: For any second user among the k users, the mechanism determines a second private key corresponding to the user identifier of the second user based on the first sequence information and the third sequence information, uses the second private key to decrypt the first string to obtain a second string, and performs a first processing on the user data of the second user based on the second string to obtain the transformed user data of the second user.
3. The method according to claim 2, wherein the first processing includes an XOR process.
4. The method according to claim 2 or 3, wherein the query device obtains the user data of the first user based on the random number, the indication information, the k converted user data, and the fourth sequence information using the OT algorithm, comprising: The query device determines the first converted user data corresponding to the first user from the k converted user data according to the instruction information and the fourth sequence information, and performs a second processing on the first converted user data based on the random number to obtain the user data of the first user. The second processing corresponds to the first processing.
5. The method according to claim 1, wherein the query device sends the first encrypted query data to the trusted unit, comprising: The query device sends the first encrypted query data to the server; The server provides the trusted unit with the first encrypted query data, the k public keys of the target organization obtained in advance, and the second sequence information.
6. The method according to claim 5, wherein the server provides the first encrypted query data, the k public keys of the target organization, and the second sequence information to the trusted unit, comprising: The server stores the first encrypted query data, the k public keys of the target institution, and the second sequence information in the blockchain, and instructs the trusted unit to obtain the first encrypted query data, the k public keys of the target institution, and the second sequence information from the blockchain.
7. The method according to claim 5, wherein the user identifier comprises: A digest value obtained by hashing one or more pieces of information about a user.
8. The method of claim 7, further comprising: The query device calculates a first hash value for one or more pieces of information of the first user and sends the first hash value to the server; The server calculates the first hash value and the second hash value of the preset value as the first user identifier of the first user, and returns the first user identifier to the query device.
9. The method according to claim 5, further comprising: The server provides the target organization's public key to the trusted unit, and the trusted unit encrypts the second query data by using the target organization's public key.
10. The method according to claim 9, wherein the public key of the target organization is the public key of the target organization's DID, and the method further comprises: The server obtains the public key of the target organization's DID from the blockchain.
11. A method for sending encrypted query data, executed by a trusted unit, comprising: The system receives first encrypted query data, which is obtained by encrypting the first query data. The first query data includes user identifiers of k users, first order information of the k user identifiers, indication information for indicating the first user to be queried among the k users, and a random number. The trusted unit pre-stores k public keys of the target institution corresponding to the first user and second order information of the k public keys. Decrypt the first ciphertext query data to obtain the first query data; Based on the first sequence information and the second sequence information, determine the first public key among the k public keys that corresponds to the indication information; The first public key is used to encrypt the random number to obtain a first string, and the second query data is then encrypted to obtain a second ciphertext query data. The second query data includes the user identifiers of the k users, the first order information, and the first string. The second encrypted query data is sent to the target organization's equipment.
12. A user data query system, comprising a query device, a trusted unit, and institutional equipment for the target organization. The query device is used to send the first encrypted query data to the trusted unit. The trusted unit is used to perform privacy calculations. The first encrypted query data is obtained by encrypting the first query data. The first query data includes user identifiers of k users, first order information of the k user identifiers, indication information for indicating the first user to be queried among the k users, and a random number. The trusted unit pre-stores k public keys of the target institution corresponding to the first user and second order information of the k public keys. The trusted unit is used to decrypt the first encrypted query data to obtain the first query data, determine the first public key corresponding to the indication information among the k public keys according to the first sequence information and the second sequence information, encrypt the random number using the first public key to obtain the first string, encrypt the second query data to obtain the second encrypted query data, the second query data including the user identifiers of the k users, the first sequence information and the first string; and send the second encrypted query data to the institutional equipment of the target institution. The device is used to decrypt the second encrypted query data to obtain the second query data, acquire the user data of the k users, and process the user data of the k users based on the first string, the k private keys of the target institution, and the third order information of the k private keys using the inadvertent transmission OT algorithm to obtain k transformed user data; the k transformed user data and their fourth order information are sent to the query device, wherein the third order information and the fourth order information correspond to the second order information; The query device is used to obtain the user data of the first user based on the random number, the indication information, the k converted user data, and the fourth sequence information using the OT algorithm.
13. The system according to claim 12 further includes a server. When the query device sends the first encrypted query data to the trusted unit, it is specifically used to: send the first encrypted query data to the server; The server is used to provide the trusted unit with the first encrypted query data, the k public keys of the target organization obtained in advance, and the second sequence information.
14. A trusted unit, comprising: The receiving unit is used to receive first encrypted query data, which is obtained by encrypting the first query data. The first query data includes user identifiers of k users, first order information of the k user identifiers, indication information for indicating the first user to be queried among the k users, and a random number. The trusted unit pre-stores k public keys of the target institution corresponding to the first user and second order information of the k public keys. The decryption unit is used to decrypt the first ciphertext query data to obtain the first query data. A determining unit is configured to determine, based on the first sequence information and the second sequence information, the first public key among the k public keys that corresponds to the indication information; The encryption unit is used to encrypt the random number using the first public key to obtain a first string, and to encrypt the second query data to obtain second ciphertext query data. The second query data includes the user identifiers of the k users, the first order information, and the first string. The sending unit is used to send the second encrypted query data to the mechanism equipment of the target organization.
15. A computer-readable storage medium having a computer program stored thereon, which, when executed in a computer, causes the computer to perform the method of claim 11.
Citation Information
Patent Citations
Data processing method based on block chain and related equipment
CN110839026A
Hidden trace query method based on casual transmission protocol
CN113190584A