Data usage method for privacy protection, and servers
By deploying servers and user databases within the domain, receiving and processing data usage application information, configuring encryption interfaces and performing data encryption transfer, the problem of difficult data security transfer and management permissions in the prior art is solved, and efficient data security management and use is achieved.
Patent Information
- Application Number
- PCT/CN2023/135064
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-19
- Filing Date
- 2023-11-29
- Publication Date
- 2025-03-27
AI Technical Summary
The prior art can easily lead to the risk of data leakage in the process of ensuring the secure transfer of data, and it is difficult to effectively manage data usage rights.
By providing a data usage method for privacy protection, a server is deployed in the domain, combined with the database of the first user, receiving the usage application information of the second user, configuring the interface according to the authorization information, encrypting and transferring data, ensuring the security and management permissions of the data during use.
Improve data security, avoid the risk of data breaches, and provide data owners with better data management functions, enhancing control over data usage.
Smart Images

Figure CN2023135064_27032025_PF_FP_ABST
Abstract
Description
Data usage method and server for privacy protection
[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of China on September 19, 2023, with application number 202311217614.0 and application name “Data Usage Method and Server for Privacy Protection”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The embodiments of this specification belong to the field of computer technology, and more particularly, to a data usage method and server for privacy protection. Background Art
[0003] Data generally refers to a resource in electronic form that is owned by an enterprise or individual, possesses ownership, is valuable, measurable, and readable. When enterprises or individuals use data provided by the data owner, they must ensure the secure transfer of data through technical processing to protect the data owner's privacy.
[0004] Summary of the Invention
[0005] The purpose of the present invention is to provide a data usage method for privacy protection to improve data management.
[0006] A first aspect of this specification provides a data usage method for privacy protection, which is performed by a first server, the first server being deployed in a first domain, the first domain also including a first database corresponding to a first user, the first database storing first data of the first user, the method comprising:
[0007] receiving application information for use of the first data sent by a second user;
[0008] sending, according to the usage application information, an identifier of the first data to a first device of the first user;
[0009] receiving authorization information from the first device, the authorization information including usage restriction information on the first data;
[0010] Configuring a first interface in a first server according to the use application information and the use restriction information;
[0011] By executing the first interface, the first data is read from the first database, the first data is encrypted, a ciphertext of the first data is generated, and the ciphertext of the first data is stored for providing to a second user.
[0012] In one embodiment, the first interface includes a conversion plug-in, and configuring the first interface according to the use application information and the use restriction information includes: configuring an encryption algorithm corresponding to the use restriction information for the conversion plug-in according to the use restriction information.
[0013] In one embodiment, the conversion plug-in includes at least one of the following encryption algorithms: a searchable encryption algorithm that supports congruent queries, a searchable encryption algorithm that supports fuzzy queries, a fully homomorphic encryption algorithm, and the national encryption algorithm SM4.
[0014] In one embodiment, storing the ciphertext of the first data includes: storing the ciphertext of the first data in a second database in the first domain.
[0015] In one embodiment, configuring the first interface according to the use application information and the use restriction information includes:
[0016] generating a first task in response to the authorization information, wherein the first task includes at least part of the use application information and the use restriction information;
[0017] Executing the first task to generate configuration information for the first interface;
[0018] generating a second task according to the triggering of the first task, wherein the second task includes the configuration information;
[0019] Perform the second task to configure the first interface.
[0020] In one embodiment, performing the second task further includes:
[0021] The first interface is executed according to the configuration of the first interface.
[0022] In one embodiment, the method further includes: receiving a domain identifier corresponding to the second user; the first task and the second task also include the domain identifier corresponding to the second user; and executing the second task further includes:
[0023] When it is determined, based on the domain identifier corresponding to the second user, that the second user corresponds to a second domain different from that of the first user, triggering generation of a third task, the third task including an identifier of the ciphertext of the first data, the second database identifier, and a domain identifier of the second domain;
[0024] Perform the third task, obtain the ciphertext of the first data from the second database, and send the ciphertext of the first data to the second server in the second domain.
[0025] In one embodiment, performing the second task further includes:
[0026] When it is determined, based on the domain identifier corresponding to the second user, that the second user corresponds to the same domain as the first user, triggering generation of a fourth task, the fourth task including an identifier of the ciphertext of the first data, an identifier of the second database, and an identifier of a third database in the first domain, the third database corresponding to the second user;
[0027] Perform the fourth task, obtain the ciphertext of the first data from the second database, and store the ciphertext of the first data in the third database.
[0028] In one embodiment, performing the fourth task further includes:
[0029] triggering generation of a fifth task, the fifth task including an identifier of the second database and an identifier of the ciphertext of the first data;
[0030] Execute the fifth task and delete the ciphertext of the first data in the second database according to a preset condition.
[0031] In one embodiment, the method further includes: receiving a processing request for the ciphertext of the first data from the device of the second user, reading the ciphertext of the first data from the third database according to the processing request, processing the ciphertext of the first data to obtain a second ciphertext, and returning the second ciphertext to the device of the second user.
[0032] A second aspect of the present specification provides a server deployed in a first domain, wherein the first domain further includes a first database corresponding to a first user, and the first database stores first data of the first user. The server includes:
[0033] a receiving unit, configured to receive application information for use of the first data sent by a second user;
[0034] a sending unit, configured to send the identifier of the first data to the first device of the first user according to the usage application information;
[0035] The receiving unit is further configured to: receive authorization information from the first device, the authorization information including usage restriction information on the first data;
[0036] a configuration unit, configured to configure a first interface preset in the server according to the use application information and the use restriction information;
[0037] An execution unit is configured to read the first data from the first database by executing the first interface, encrypt the first data, generate a ciphertext of the first data, and store the ciphertext of the first data for providing to a second user.
[0038] A third aspect of this specification provides a computer-readable storage medium having a computer program stored thereon. When the computer program is executed in a computer, the computer is caused to execute the method described in the first aspect.
[0039] A fourth aspect of this specification provides a computing device, including a memory and a processor, wherein the memory stores executable code, and when the processor executes the executable code, the method described in the first aspect is implemented.
[0040] The data usage method provided in the embodiments of this specification, by calling a preset data transfer interface, can select the corresponding encryption algorithm based on the usage restriction information specified by the data owner to encrypt the data for use by the data requester. This provides data owners with better data management capabilities and further improves data security, avoiding the risk of data leakage. BRIEF DESCRIPTION OF THE DRAWINGS
[0041] In order to more clearly illustrate the technical solutions of the embodiments of this specification, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments recorded in this specification. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.
[0042] FIG1 is a system architecture diagram of an embodiment of this specification;
[0043] FIG2 is a flow chart of a method for using intra-domain data in an embodiment of this specification;
[0044] FIG3 is a flow chart of a method for using cross-domain data in an embodiment of this specification;
[0045] FIG4 is an architecture diagram of a server in an embodiment of this specification. DETAILED DESCRIPTION
[0046] To help those skilled in the art better understand the technical solutions in this specification, the following will provide a clear and complete description of the technical solutions in the embodiments of this specification, in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of this specification, not all of them. All other embodiments derived by those skilled in the art based on the embodiments in this specification without creative effort shall fall within the scope of protection of this specification.
[0047] Currently, with the development of internet technology, the amount of data generated is increasing. Data refers to electronic resources that belong to an enterprise or individual, possess ownership rights, and are valuable, measurable, and readable. Data ownership includes exploration rights, usage rights, and ownership rights. Electronic resources refer to resources in the form of text, graphics, symbols, numbers, letters, and other forms generated through electronic technologies such as computer applications, communications, and modern management techniques. Data may have at least one of the following attributes: name, instance ID, unique identification ID, on-chain ID, participating node ID, dataset ID, evidence hash, source path, encryption key, approval process ID, encryption status, sensitive data status, and status.
[0048] In related technologies, when businesses or individuals use data provided by other businesses or individuals, they need to ensure secure transfer through technical processing to prevent the leakage of private data of other businesses or individuals. However, this process is technically difficult, as servers often use data processing interfaces provided by other computing platforms to process data (for example, encrypt it), which can easily lead to the risk of data leakage.
[0049] To this end, the embodiments of this specification provide a data usage platform, which provides a data transfer interface in the data usage platform. Through this data transfer interface, data can be securely transferred between users, and one user's data can be provided to another user for use. The interface can also be used to limit the user's data usage pattern, thereby enhancing the data management function, improving the security of data transfer, and improving the execution efficiency of the data usage platform.
[0050] Figure 1 is a system architecture diagram of an embodiment of this specification. As shown in Figure 1, the system may include multiple domains (domain D1 and domain D2 are schematically shown in Figure 1), each domain includes a server cluster and a storage device, supports user registration and login, and can store user data. Servers in different domains have different access domain names. For example, domain D1 includes server S1, user U1 can register on server S1 through the U1 device, and user U2 can register on server S1 through the U2 device. In addition, domain D1 may include a database DB1 corresponding to user U1, a database DB2 corresponding to user U2, and an intermediate database DB m1 The domain D2 includes a server S2, and the user U3 can register on the server S2 through the U3 device. The domain D2 may include a database DB3 corresponding to the user U3, and an intermediate database DB m2 .
[0051] In this embodiment of the present disclosure, secure data transfer is achieved by providing data transfer interfaces to servers in various domains. This allows, for example, user U2 to access user U1's data while protecting user data. Furthermore, server S1 in domain D1 and server S2 in domain D2 are interconnected via a network. By sending encrypted data within domain D2 to server S1, user U1 registered in domain D1, for example, can also access the data of users in domain D2.
[0052] Figure 2 is a flowchart of a method for using intra-domain data in one embodiment of this specification. This method can be executed by the device of user U1, the device of user U2, and server S1 corresponding to domain D1. As shown in Figure 1, users U1 and U2 are both registered with server S1, and therefore each has a corresponding database in domain D1. For example, if user U2 wishes to use user U1's data, server S1 can provide the data to user U1 within domain D1.
[0053] Specifically, referring to FIG. 2 , first, in step S201 , the user U2 device sends a request for use of the user U1 data to the server S1 .
[0054] User U1 can send their data Data1 and associated information to server S1 via device U1. The associated information for Data1 includes, for example, the data ID of Data1, the ID of the user to whom Data1 belongs, the domain of the user to whom Data1 belongs, authorization information for Data1, and a description of the content of Data1. After receiving Data1 and associated information, server S1 can store the plaintext Data1 and its associated information in database DB1 corresponding to user U1 in domain D1. User U1 can then send the data usage rules and data usage approval process for Data1 to server S1 and publish Data1 and its published information on server S1. This published information, for example, includes at least some of the aforementioned associated information. In one embodiment, this published information may also include information such as the identifier of database DB1 in domain D1 that stores Data1. After user U1 publishes Data1, other users can view the published information for Data1 on server S1.
[0055] After receiving the data usage rules for Data1, server S1 may store the rules for subsequent use in determining usage restrictions for other users of Data1 based on the rules. After receiving the data usage approval process for Data1, server S1 may generate configuration information for a data usage approval code based on the process, so that when a user applies to use Data1, the data usage approval code, based on the configuration information, can be executed.
[0056] For example, after viewing the published information for data Data1 on server S1, user U2 determines that they need to use data Data1. Therefore, user U2 may submit a request to server S1 for use of data Data1. This request may include, for example, the identifier of the data owner, the domain of the data owner, the data identifier, the identifier of the data user, and other information. In one embodiment, the request may also include the identifier of the data storage database and the identifier of the database that the data user will use to store the data.
[0057] In step S203 , when the server S1 determines that the domain of the data owner in the data use application information is the domain where the server S1 is located, the server S1 sends the identifier of the data Data1 to the device of the user U1 .
[0058] After receiving the identification of data Data1, server S1 executes the aforementioned data usage approval code to proceed with the approval process. Based on the data Data1 itself, server S1 can determine authorization information for Data1, which includes usage restrictions for the data. These restrictions may include, for example, restrictions on usage patterns, limits on the number of times data can be used, and data desensitization policies.
[0059] In one embodiment, server S1 can obtain user U2's identity information from a database storing user identity information based on user U2's identifier, and send the identifier of data Data1 and user U2's identity information to user U1's device. After receiving the identifier of data Data1 and user U2's identity information, user U1's device generates authorization information for user U2. This authorization information indicates whether user U2 is authorized. If authorized, the authorization information also includes restrictions on user U2's use of data Data1. These restrictions may include, for example, restrictions on usage patterns, restrictions on the number of times data can be used, and data desensitization policies.
[0060] Among them, the usage mode may include at least one of the following modes: congruent query, fuzzy query, string concatenation, string length, substring truncation, string lowercase conversion, string uppercase conversion, etc. The usage mode restriction may specify at least one of the above usage modes, thereby restricting the user's usage mode of the data. Server S1 may encrypt the target data and provide it to the applicant by selecting an encryption algorithm corresponding to the mode restriction in the authorization information, thereby implementing restrictions on the usage mode of the data. For example, server S1 may select a searchable encryption algorithm (SSE) that supports congruent query to restrict users from using data in the congruent query mode; may select an SSE that supports fuzzy query to support users from using data in the fuzzy query mode; or may select a fully homomorphic encryption algorithm to restrict users from performing operations such as string concatenation, obtaining string length, truncating substrings, string lowercase conversion, string uppercase conversion, etc. on the data.
[0061] The usage limit may specify the total number of times a user uses data and / or the number of times a user uses data per day, etc. The server S1 may configure a gateway according to the usage limit to implement the usage limit.
[0062] The desensitization policy is used to specify the desensitization method for data, such as hash desensitization, masking desensitization, pseudonym desensitization, etc. When the server S1 obtains the plaintext data, it can desensitize the plaintext data based on the desensitization policy.
[0063] In step S205, the user U1 device sends the authorization information to the server S1.
[0064] In step S207, the server S1 configures a data transfer interface based on the application information and the authorization information.
[0065] In server S1, the data transfer process can be driven by tasks. After receiving the application and authorization information, server S1 generates a data access task, Task1, and places it in the task list. Task1 is executable code that includes at least some of the application and authorization information. Specifically, Task1 may include data identification, data source connection information, and data transfer target information.
[0066] Server S1 can then execute Task 1. By executing Task 1, it extracts the complete information required for this data transfer from Task 1 and the database, triggering the generation of Task 2. Task 2 is used to initialize the data transfer interface based on the information obtained by Task 1 and perform the data transfer by executing the data transfer interface.
[0067] The data transfer interface may include a reader plug-in, a transformer plug-in, and a writer plug-in.
[0068] The data transfer interface serves as a data synchronization framework, abstracting the synchronization of different data sources into a Reader plug-in that reads data from the source data source, a Writer plug-in that writes data to the target end, and a Transformer plug-in that allows users to customize data processing. The Reader plug-in reads raw data from the source database, the Transformer plug-in performs the data processing required for various encryption methods, and the Writer plug-in writes the processed ciphertext data to the target database. By calling this data transfer interface during the encryption transfer execution process, the need for an external computing engine is eliminated, avoiding the risk of data leakage and the replacement of the actual execution method when data flows into the external computing engine for encryption.
[0069] When executing Task 2, server S1 generates read plug-in configuration information based on the data owner information in the application. This configuration information includes, for example, the identifier of database DB1, which stores data Data1. Server S1 configures the read plug-in using this configuration information, and then runs the read plug-in to read data Data1 from database DB1.
[0070] The server S1 can configure the conversion plug-in according to the authorization information. The conversion plug-in is pre-set with encryption algorithms corresponding to various usage modes.
[0071] Among them, searchable encryption that supports congruent queries includes the following process: (1) Parameter preparation: Generate the data encryption key secretKey, use secretKey and additional information (data unique identification id) to deduce the searchable encryption key subKey, and randomly generate the initial vector iv. (2) Base point calculation: Perform sm3 encryption on the plaintext data to be encrypted to obtain the ciphertext hm, obtain the subgroup base point G from the ECDSA (Elliptic Curve Digital Signature Algorithm) curve according to the cryptographic standard Secp256k1 parameter definition, calculate subKey and hm modulo the horizontal coordinate of G to obtain hmTimesK1. (3) Point encoding: Perform addition and multiplication operations on hmTimesK1 and G, calculate another point ecMes on the curve, perform uncompressed encoding on ecMes, truncate the middle part of the code, and take the first and second codes as the congruent query index (EqualSearchIndex).
[0072] Searchable encryption that supports fuzzy queries includes the following process: (1) Parameter preparation: Generate the data encryption key secretKey, use secretKey and additional information (data unique identification ID) to deduce the searchable encryption key subKey, randomly generate the initial vector iv, and segment the data to be encrypted according to the segment length numSearchIndexNum (customizable, default is 3). (2) Construct a bloom filter: If the length of the data to be encrypted is less than numSearchIndexNum, construct it directly; if the length of the data to be encrypted is greater than numSearchIndexNum, construct it only for the specified length. After the construction is completed, fill the bloom filter in parallel and use the bloom filter as the index of the fuzzy query (likeSearchIndex).
[0073] Fully homomorphic encryption includes the following process: Based on the field type, (1) String type fields are encrypted using the BFV algorithm. (2) Date type fields are encrypted using the SM4 algorithm. (3) Byte, Short, Integer, Long, Float, and Double type fields are encrypted using the CKKS algorithm.
[0074] Server S1 can select an encryption algorithm corresponding to the specified usage mode according to the specified usage mode included in the authorization information. For example, if the authorization information includes support for congruent queries, server S1 can select a searchable encryption algorithm (SSE) that supports congruent queries in the conversion plug-in. If the authorization information includes support for fuzzy queries, server S1 can select a searchable encryption algorithm (SSE) that supports fuzzy queries in the conversion plug-in. If the authorization information includes support for congruent queries, server S1 can select a searchable encryption algorithm (SSE) that supports congruent queries in the conversion plug-in. If the authorization information includes support for usage modes such as string concatenation, string length, substring truncation, string conversion to lowercase, and string conversion to university, server S1 can select a fully homomorphic encryption algorithm in the conversion plug-in. In addition, if the authorization information does not specify a usage mode, server S1 can select the national encryption algorithm SM4 in the conversion plug-in to encrypt the data.
[0075] The server S1 can also generate configuration information for writing the plug-in according to the identifier of the intermediate database included in the domain D1. For example, the configuration information includes the database DB m1 By running the write plug-in, the data Data1 can be written into the database DB. m1 .
[0076] In step S209, the server S1 reads data from the database DB1 by executing the data transfer interface, encrypts the data, and stores the ciphertext data in the database DB m1 .
[0077] After completing the configuration of the data transfer interface in server S1, it executes the data transfer interface according to Task2 to complete the data transfer. Specifically, by executing the reader plug-in, it reads data Data1 from database DB1, executes the transformer plug-in, encrypts data Data1 to obtain ciphertext data, and executes the writer plug-in to store the ciphertext data in database DB. m1 middle.
[0078] When the transformer plug-in is executed, based on the configuration information, an encryption algorithm corresponding to the user-specified usage mode is selected to encrypt Data1, thereby limiting the usage mode of Data1 by the data requester (i.e., user U2 who requests to use Data1). The encryption key for the data in server S1 is provided by user U1, or the encryption and decryption keys are generated by server S1 and then provided to user U1. User U1 can then decrypt the ciphertext data or authorize other users to decrypt the ciphertext data.
[0079] In step S211, the server S1 determines that the user U2 corresponds to the server S1, and then obtains the user U2 from the database DB. m1 Read the encrypted data and store it in the database DB2.
[0080] After completing Task 2, server S1 determines that the data transfer recipient (i.e., user U2) corresponds to server S1, that is, when user U2 is also registered on server S1, and generates Task 3, which includes the above application information and is used to call the data transfer interface based on the application information to transfer the encrypted data from the database DB to the server. m1 Transfer to database DB2 corresponding to user U2.
[0081] Specifically, server S1 configures the reader plug-in of the data transfer interface by executing task Task3 to read data from the database DB m1 Read the ciphertext data of Data1 and configure the writer plug-in to write the read ciphertext data into the database DB2. After that, server S1 executes the configured reader plug-in and writer plug-in to read the ciphertext data from the database DB2. m1 Read the encrypted data and store it in the database DB2.
[0082] After completing Task3, server S1 can also trigger the generation of Task4, thereby executing Task4 to store the database DB m1The encrypted data stored in the ciphertext is deleted. For example, you can set it to delete the encrypted data after it is stored for more than 24 hours.
[0083] In step S213, the user U2 device sends processing information of the ciphertext data to the server S1.
[0084] For example, for the ciphertext data obtained by performing searchable encryption on the data Data1, the user U2 device can encrypt the search keyword based on, for example, an encryption key to obtain the ciphertext keyword, and send the ciphertext keyword to the server S1.
[0085] For the ciphertext data obtained through fully homomorphic encryption, the user U2 device can send processing mode information to the server S1. The processing mode may include at least one of the following: case conversion of the ciphertext, taking the absolute value, calculating the average, addition, subtraction, multiplication and division operations, exponential logarithm operations, etc.
[0086] In step S215, the server S1 reads the ciphertext data from the database DB2 according to the processing information, processes the ciphertext data, and obtains a processing result.
[0087] Specifically, for the ciphertext data obtained through searchable encryption, the server S1 can search the ciphertext data based on the ciphertext keywords to obtain search results.
[0088] For the ciphertext data obtained through full-pass encryption, the server S1 can process the ciphertext data according to the processing mode information to obtain a processing result.
[0089] In step S217, the server S1 returns the processing result to the user U2 device.
[0090] After receiving the processing result, user U2 device can send the processing result to user U1 device because the processing result is in ciphertext. After user U1 device decrypts the processing result, it returns the plaintext to user U2 device, so that user U2 can obtain the plaintext processing result.
[0091] FIG2 shows a flow chart of a data usage method for transferring data within a domain. The solution provided in the embodiments of this specification can also transfer data between domains, so that users can use other users' data across domains.
[0092] Figure 3 is a flowchart of a cross-domain data usage method in an embodiment of this specification. This method can be performed by the device of user U1 corresponding to domain D1, the device of user U3 corresponding to domain D2, server S1, and server S2. As shown in Figure 1, user U1 and user U3 are registered on different servers. Therefore, user U1 has a corresponding database DB1 in domain D1, and user U3 has a corresponding database DB3 in domain D2. When user U3 wishes to use user U1's data, the data can be transferred from domain D1 to domain D2 through server S2 and server S1 to provide it to user U3.
[0093] As shown in FIG3 , first, in step S301 , the device of user U3 sends application information for use of the data of user U1 to the server S2 .
[0094] After user U1 publishes data Data1 in domain D1 as described above, server S1 can provide the data release information from domain D1 to other domains for publication there and for users in those domains to use. In one embodiment, servers in each domain are connected to the blockchain, enabling them to upload data release information from their own domain to the blockchain and retrieve data release information from other domains. For example, server S2 in domain D2 can retrieve data Data1 from the blockchain for domain D1 and publish it within its own domain.
[0095] After viewing the published information for data Data1 on server S2, user U3 in domain D2 determines that they need to use data Data1. Consequently, user U3 submits a request to server S2 for use of data Data1. This request may include, for example, the identifier of the data owner (i.e., the identifier of user U1), the domain of the data owner, the data identifier, and the identifier of the data user (i.e., the identifier of user U3). In one embodiment, the request may also include the identifier of the data storage database and the identifier of the database in which the data user will store the data.
[0096] In step S303 , the server S2 sends the use application information for the data Data1 of the user U1 to the server S1 .
[0097] Based on the usage application information, server S2 can determine the domain D1 where the data owner is located, and can determine that the data owner and the data applicant are in different domains. In one embodiment, the usage application information may include the uniform resource locator (url) of data Data1. When the server determines that any one of the protocol, domain name, and port of the url is different from the data url in domain D1 based on the url, it considers that the usage application information is a cross-domain request. After confirming that the usage application information is a cross-domain request, server S2 can send the usage application information to the server S1 corresponding to domain D1. Among them, server S2 can add the identifier "D2" of the domain to which user U3 belongs in the usage application information, and send the updated usage application information to server S1.
[0098] The server S2 stores the identity information uploaded by the user U3 during registration, and can read the identity information of the user U3 and send it together with the user application information to the server S1 of the domain D1.
[0099] In step S305, the server S1 sends the data identifier to the device of the user U1.
[0100] In step S307, user U1 sends authorization information to server S1.
[0101] For steps S305 and S307 , reference may be made to the above description of steps S203 and S205 , which will not be repeated here.
[0102] In step S309, the server S1 configures the data transfer interface based on the usage application information and the authorization information.
[0103] In step S311, the server S1 reads data from the database DB1 by executing the data transfer interface, encrypts the data, and stores the ciphertext data in the database DB m1 .
[0104] Steps S309 and S311 can refer to the description of steps S207 and S209 above and will not be repeated here. It should be understood that while the above description describes the encrypted ciphertext data being stored in a database within domain D1, this description is not limited to this. For example, server S1 can execute a write plug-in to store the ciphertext data in a pre-defined database outside of domain D1 for provision to user U3. In this case, server S2 can directly read the ciphertext data from the database outside of domain D1 and provide it to user U3.
[0105] In step S313, the server S1 determines that the user U3 corresponds to the domain D2 and retrieves the domain name from the database DB. m1 Read the ciphertext data and send it to server S2.
[0106] For example, the server S1 can determine that the user U3 corresponds to the domain D2 by using the identifier of the domain of the sending user in the application information. After determining that the user U3 is in a different domain, the server S1 retrieves the domain ID from the database DB. m1 Read the ciphertext data and send it to server S2. Specifically, server S1 can also generate the above-mentioned task Task1 in step S309, and trigger the generation of the above-mentioned task Task2 based on the completion of task Task1. When server S1 completes task Task2 and determines that user U3 corresponds to domain D2, it triggers the generation of task Task5, which includes the identifier of the ciphertext data of Data1, the database DB m1 The identifier of the domain D2 is used to obtain the m1 Read the encrypted data and send it to the server S2 in the domain D2.
[0107] In step S315, the server S2 stores the received ciphertext data in the database DB. m2 In the configuration, the data transfer interface is configured based on the application information.
[0108] Specifically, after receiving the ciphertext data of Data1, the server S2 may trigger the generation of task Task6, which includes the above-mentioned usage application information for configuring the data transfer interface and transferring the ciphertext data by executing the data transfer interface.
[0109] Server S2 can be used to store cross-domain data according to the preset database DB m2 The configuration information of the reader plug-in is configured according to the identifier of the user U3 in the application information, or the identifier of the database corresponding to the user U3, and the configuration information of the writer plug-in is determined.
[0110] In step S317, the server S2 executes the data transfer interface to transfer the data from the database DB m2 Read the encrypted data and store it in the database DB3.
[0111] After completing the configuration of the data transfer interface, the server S2 can execute the data transfer interface to transfer data from the database DB m2 Read the ciphertext data and store it in the database DB3. After completing Task6, trigger the generation of Task7 to retrieve the ciphertext data from the database DB3 at the preset time. m2 Delete ciphertext data.
[0112] In step S319, the user U3 device sends data processing information to the server S2.
[0113] In step S321, the server S2 reads the ciphertext data from the database DB3 according to the data processing information, processes the ciphertext data, and obtains a processing result.
[0114] In step S323, the server S2 returns the processing result to the user U3 device.
[0115] Among them, steps S319 to S323 can refer to the above description of steps S213 to S217, and will not be repeated here.
[0116] FIG4 is an architecture diagram of a server in an embodiment of this specification. The server is deployed in a first domain. The first domain also includes a first database corresponding to a first user. The first database stores first data of the first user. The server is configured to execute the method shown in FIG2 or FIG3 , including:
[0117] The receiving unit 41 is configured to receive application information for use of the first data sent by a second user;
[0118] A sending unit 42, configured to send the identifier of the first data to the first device of the first user according to the usage application information;
[0119] The receiving unit 41 is further configured to: receive authorization information from the first device, the authorization information including usage restriction information on the first data;
[0120] a configuration unit 43, configured to configure the first interface according to the use application information and the use restriction information;
[0121] The execution unit 44 is used to read the first data from the first database by executing the first interface, encrypt the first data, generate the ciphertext of the first data, and store the ciphertext of the first data in the second database in the first domain for providing to the second user.
[0122] The embodiments of this specification also provide a computer-readable storage medium having a computer program stored thereon. When the computer program is executed in a computer, the computer is caused to execute the method shown in FIG. 2 or FIG. 3 .
[0123] An embodiment of this specification further provides a computing device, including a memory and a processor, wherein the memory stores executable code, and when the processor executes the executable code, the method shown in FIG. 2 or FIG. 3 is implemented.
[0124] In the 1990s, technological improvements could be clearly distinguished as either hardware improvements (for example, improvements to circuit structures like diodes, transistors, and switches) or software improvements (improvements to process flows). However, with the advancement of technology, many process flow improvements today can now be considered direct improvements to hardware circuit structures. Designers almost always create the corresponding hardware circuit structure by programming the improved process flow into the hardware circuit. Therefore, it cannot be said that a process flow improvement cannot be implemented using hardware modules. For example, a programmable logic device (PLD), such as a field programmable gate array (FPGA), is an integrated circuit whose logical function is determined by user programming. Designers can "integrate" a digital system on a PLD by programming it themselves, without having to hire a chip manufacturer to design and manufacture a dedicated integrated circuit chip. Moreover, nowadays, instead of manually fabricating integrated circuit chips, this programming is mostly done using "logic compiler" software. This is similar to the software compiler used when developing programs. Before compilation, the original code must also be written in a specific programming language, called a hardware description language (HDL). There is not just one HDL, but many, 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, RHDL (Ruby Hardware Description Language), etc. The most commonly used are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art will also understand that by simply programming the method flow in one of these hardware description languages and then programming it into an integrated circuit, a hardware circuit that implements the logic method flow can be easily obtained.
[0125] The controller can be implemented in any suitable manner. For example, the controller 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 Silicone Labs C8051F320. The memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also know that in addition to implementing the controller in a purely computer-readable program code format, the controller can be implemented in the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers by logically programming the method steps. Therefore, such a controller can be considered a hardware component, and the devices included therein for implementing various functions can also be considered as structures within the hardware component. Or even, the devices for implementing various functions can be considered as both software modules that implement the method and structures within the hardware component.
[0126] The systems, devices, modules or units described in the above embodiments may be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a server system. Of course, this application does not exclude that with the future development of computer technology, the computer that implements the functions of the above embodiments may be, for example, a personal computer, a laptop computer, an in-vehicle human-computer interaction device, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
[0127] Although one or more embodiments of this specification provide method operation steps as described in the embodiments or flow charts, more or fewer operation steps may be included based on conventional or non-creative means. The order of steps listed in the embodiments is only one way of executing the order of many steps and does not represent the only execution order. When the device or terminal product in practice is executed, it can be executed in sequence or in parallel according to the method shown in the embodiments or the drawings (for example, a parallel processor or a multi-threaded processing environment, or even a distributed data processing environment). The term "comprise", "include" or any other variant thereof is intended to cover non-exclusive inclusion, so that the process, method, product or equipment including a series of elements includes not only those elements, but also includes other elements that are not clearly listed, or also includes elements inherent to such process, method, product or equipment. In the absence of more restrictions, it is not excluded that there are other identical or equivalent elements in the process, method, product or equipment including the elements. For example, if the words first, second, etc. are used to represent the name, they do not represent any particular order.
[0128] For the convenience of description, the above devices are described in terms of functions divided into various modules. Of course, when implementing one or more of the present specifications, the functions of each module can be implemented in the same or multiple software and / or hardware, or the module that implements the same function can be implemented by a combination of multiple sub-modules or sub-units, etc. The device embodiments described above are merely schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.
[0129] The present invention is described with reference to the flowcharts and / or block diagrams of the methods, apparatus (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device produce a device for implementing the functions specified in one or more processes in the flowchart and / or one or more blocks in the block diagram.
[0130] These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a product including an instruction device that implements the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.
[0131] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.
[0132] In a typical configuration, a computing device includes one or more processors (CPUs), input / output interfaces, network interfaces, and memory.
[0133] Memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.
[0134] Computer-readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer-readable instructions, data structures, program modules 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 technology, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic disk storage, graphene storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include transitory media such as modulated data signals and carrier waves.
[0135] Those skilled in the art will appreciate that one or more embodiments of this specification may be provided as a method, system, or computer program product. Thus, one or more embodiments of this specification may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware. 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 magnetic disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0136] One or more embodiments of this specification may be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, and the like that perform specific tasks or implement specific abstract data types. One or more embodiments of this specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communications network. In a distributed computing environment, program modules may be located in local and remote computer storage media, including storage devices.
[0137] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between the various embodiments can be referenced across them. Each embodiment focuses on the differences from the other embodiments. In particular, since the system embodiments are generally similar to the method embodiments, their description is relatively simple. For relevant parts, reference can be made to the description of the method embodiments. Throughout this specification, reference to the terms "one embodiment," "some embodiments," "examples," "specific examples," or "some examples" means that the specific features, structures, materials, or characteristics described in conjunction with that embodiment or example are included in at least one embodiment or example of this specification. In this specification, the schematic representations of these terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples. Furthermore, those skilled in the art may combine and integrate the different embodiments or examples, and features of different embodiments or examples, described in this specification, without conflict.
[0138] The foregoing description is merely an example of one or more embodiments of this specification and is not intended to limit the one or more embodiments of this specification. Those skilled in the art will appreciate that various modifications and variations of one or more embodiments of this specification are possible. Any modifications, equivalent substitutions, or improvements made within the spirit and principles of this specification are intended to be included within the scope of the claims.
Claims
1. A data usage method for privacy protection, executed by a first server, wherein the first server is deployed in a first domain, the first domain also includes a first database corresponding to a first user, and the first database stores first data of the first user, the method comprising: receiving application information for use of the first data sent by a second user; Sending the identifier of the first data to the first device of the first user according to the usage application information; receiving authorization information from the first device, the authorization information including usage restriction information on the first data; According to the use application information and the use restriction information, configuring a first interface preset in the first server; By executing the first interface, the first data is read from the first database, the first data is encrypted, a ciphertext of the first data is generated, and the ciphertext of the first data is stored for providing to the second user.
2. The method according to claim 1, wherein the first interface includes a conversion plug-in, and the configuring the first interface according to the use application information and the use restriction information includes: According to the usage restriction information, an encryption algorithm corresponding to the usage restriction information is configured for the conversion plug-in.
3. According to the method described in claim 2, the conversion plug-in includes at least one of the following encryption algorithms: a searchable encryption algorithm that supports congruent queries, a searchable encryption algorithm that supports fuzzy queries, a fully homomorphic encryption algorithm, and the national encryption algorithm SM4.
4. The method according to claim 1 or 2, wherein storing the ciphertext of the first data comprises: The ciphertext of the first data is stored in a second database in the first domain.
5. The method according to claim 4, wherein configuring the first interface according to the use application information and the use restriction information comprises: In response to the authorization information, generating a first task, wherein the first task includes at least part of the use application information and the use restriction information; Execute the first task to generate configuration information for the first interface; Generate a second task according to the triggering of the first task, wherein the second task includes the configuration information; Perform the second task to configure the first interface.
6. The method according to claim 5, wherein the performing of the second task further comprises: According to the configuration of the first interface, the first interface is executed.
7. The method according to claim 6, further comprising: receiving a domain identifier corresponding to the second user; The first task and the second task also include a domain identifier corresponding to the second user, and the performing of the second task further includes: When it is determined, according to the domain identifier corresponding to the second user, that the second user corresponds to a second domain different from that of the first user, triggering generation of a third task, the third task including an identifier of the ciphertext of the first data, the second database identifier, and a domain identifier of the second domain; The third task is performed to obtain the ciphertext of the first data from the second database, and to send the ciphertext of the first data to the second server in the second domain.
8. The method according to claim 7, wherein the performing of the second task further comprises: When it is determined, according to the domain identifier corresponding to the second user, that the second user corresponds to the same domain as the first user, generating a fourth task is triggered, wherein the fourth task includes an identifier of the ciphertext of the first data, an identifier of the second database, and an identifier of a third database in the first domain, wherein the third database corresponds to the second user; The fourth task is performed to obtain the ciphertext of the first data from the second database, and to store the ciphertext of the first data in the third database.
9. The method according to claim 8, wherein the performing of the fourth task further comprises: triggering generation of a fifth task, wherein the fifth task includes an identifier of the second database and an identifier of the ciphertext of the first data; Execute the fifth task and delete the ciphertext of the first data in the second database according to a preset condition.
10. The method according to claim 8, further comprising: A request for processing the ciphertext of the first data is received from the device of the second user, the ciphertext of the first data is read from the third database according to the processing request, the ciphertext of the first data is processed to obtain a second ciphertext, and the second ciphertext is returned to the device of the second user.
11. A server, deployed in a first domain, wherein the first domain also includes a first database corresponding to a first user, wherein the first database stores first data of the first user, and the server includes: A receiving unit, configured to receive application information for use of the first data sent by a second user; A sending unit, configured to send the identifier of the first data to the first device of the first user according to the use application information; The receiving unit is further used to: receive authorization information from the first device, where the authorization information includes usage restriction information on the first data; A configuration unit, configured to configure the server according to the use application information and the use restriction information. The default first interface; An execution unit is used to read the first data from the first database by executing the first interface, encrypt the first data, generate a ciphertext of the first data, and store the ciphertext of the first data for providing to a second user.
12. A server, comprising a memory and a processor, wherein the memory stores executable code, and when the processor executes the executable code, the method according to any one of claims 1 to 10 is implemented.
Citation Information
Patent Citations
Information encryption sending method and device, electronic equipment and storage medium
CN109450633A
Blockchain-based medical record information processing method and apparatus, medium and electronic device
CN110197707A
Data authorization information obtaining method, device and equipment
CN111814172A
Data use method and server for privacy protection
CN117272376A
Streaming data processing method and system for multi-level security protection
WO2022161327A1