Data processing methods, apparatus, equipment and computer-readable storage media

By decrypting and aggregating encrypted data from multiple user terminals using a data aggregator, generating noise and adding it to the data, the problems of data privacy leakage and inefficiency in cloud computing environments are solved, achieving efficient and secure data analysis.

CN118821164BActive Publication Date: 2025-10-31CHINA MOBILE GROUP ANHUI +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311829283.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-12-26
Publication Date
2025-10-31
Estimated Expiration
2043-12-26

AI Technical Summary

Technical Problem

In a cloud computing environment, when multiple data owners upload data to a cloud server for analysis, there are issues of data privacy and information leakage. Furthermore, existing data encryption technologies are inefficient, which affects the efficiency of data analysis.

Method used

The data aggregator decrypts and aggregates encrypted data uploaded by multiple user terminals, generates noise and adds it to the data to form perturbation data, and analyzes it on the cloud server to reduce the decryption burden on the cloud server. At the same time, it introduces authentication tags to verify data integrity.

Benefits of technology

While protecting data privacy, it reduces the time overhead of cloud server data decryption, improves the efficiency and accuracy of data analysis, and ensures data availability and security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118821164B_ABST
    Figure CN118821164B_ABST
Patent Text Reader

Abstract

This application provides a data processing method, apparatus, device, and computer-readable storage medium applied to an aggregator. The data processing method includes: acquiring encrypted data uploaded by multiple user terminals; decrypting the encrypted data uploaded by the multiple user terminals and aggregating the decrypted data; generating noise based on the aggregated data; adding noise to the aggregated data to obtain data with added noise; and sending the data with added noise to a cloud server. This application can protect data privacy while reducing the time spent by the cloud server to decrypt data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application belongs to the field of information security technology, and in particular relates to a data processing method, apparatus, device and computer-readable storage medium. Background Technology

[0002] With the advent of the big data era, more and more users are entrusting their data to cloud servers for analysis and storage, leveraging these servers to collaboratively extract valuable information. In a cloud computing environment, multiple data owners on a client side each upload their data to the cloud server for analysis. Because a cloud server is an open space, data owners find it difficult to allow untrusted entities to access their data. For example, multiple similar companies might want to use a cloud server to build a data analyzer to analyze user consumption patterns based on their collected user data. These companies can upload their data to the cloud server, but in this case, the cloud server, acting as the data analyst, treats the data uploaded by each company as their sensitive information.

[0003] Given data privacy concerns, no company wants to disclose its personal information to other companies. When cloud servers analyze collected data, they must obtain accurate results without revealing sensitive information about individual companies. Therefore, it is necessary to address the privacy leakage issue when analyzing multi-source user data on cloud servers and to release highly usable data after the analysis is complete.

[0004] In scenarios with multiple data owners, there is a risk of data leakage between different owners. Furthermore, information leakage may occur during data upload, leading to data incompleteness and impacting data analysis results. Data encryption technology is often used to address these issues, with multiple data owners each encrypting their data before uploading it to a cloud server, which then decrypts and analyzes the data. However, this method is inefficient; decrypting data separately on the cloud server reduces its overall data analysis efficiency. Summary of the Invention

[0005] This application provides a data processing method, apparatus, device, and computer-readable storage medium that can reduce the time spent by cloud servers decrypting data while protecting data privacy.

[0006] In a first aspect, embodiments of this application provide a data processing method applied to an aggregator. The data processing method includes: acquiring encrypted data uploaded by multiple user terminals; decrypting the encrypted data uploaded by the multiple user terminals and aggregating the decrypted data; generating noise based on the aggregated data; adding noise to the aggregated data to obtain data with added noise; and sending the data with added noise to a cloud server.

[0007] According to the implementation method of the first aspect of this application, encrypted data uploaded by multiple user terminals is decrypted, and the decrypted data is aggregated, including: clustering the decrypted data based on a target clustering algorithm to obtain multiple clusters; generating noise based on the aggregated data, including: calculating the sum of squared errors of each cluster; selecting the clusters corresponding to the top X sums of squared errors as target clusters according to the order of the sum of squared errors from largest to smallest or smallest to largest, where X is an integer greater than 1; for any target cluster, determining the target data farthest from the center of the target cluster, and obtaining noise based on the target data, a preset offset ratio, and the distance between the target data and the center of the target cluster.

[0008] According to any of the foregoing embodiments of the first aspect of this application, adding noise to the aggregated data to obtain noise-added data includes: calculating the target position of the noise in the aggregated data; and adding noise at the target position.

[0009] According to any of the foregoing embodiments of the first aspect of this application, calculating the target position of noise in the aggregated data includes: determining the target position of noise in the aggregated data based on a random seed.

[0010] According to any of the foregoing embodiments of the first aspect of this application, after sending the data with added noise to the cloud server, the method further includes: receiving a request from an authorized user terminal to view the data after noise removal; in response to the request, encrypting a random seed; and sending the encrypted random seed to the authorized user terminal so that the authorized user terminal can determine the target location of the noise based on the random seed and remove the noise at the target location.

[0011] According to any of the foregoing embodiments of the first aspect of this application, in response to a request, encrypting a random seed includes: receiving a first public key sent by an authorized user terminal; encrypting the random seed using the first public key; and the authorized user terminal decrypting the encrypted random seed using a first private key corresponding to the first public key to obtain a decrypted random seed.

[0012] According to any of the foregoing embodiments of the first aspect of this application, before obtaining the encrypted data uploaded by multiple user terminals, the method further includes: generating a second public key and an authentication tag; sending the second public key and the authentication tag to the user terminal; obtaining the encrypted data uploaded by multiple user terminals, including: obtaining data encrypted based on the second public key and authentication tags encrypted based on the second public key from each user terminal; decrypting the encrypted data uploaded by multiple user terminals, including: using a second private key corresponding to the second public key to decrypt the data encrypted based on the second public key and the authentication tags encrypted based on the second public key to obtain decrypted data and decrypted authentication tags; comparing the decrypted authentication tags with stored authentication tags to obtain a comparison result; and determining whether the data uploaded by the user terminal has been lost based on the comparison result.

[0013] According to any of the foregoing embodiments of the first aspect of this application, the authentication tag includes n non-zero random numbers, where n is a positive integer; comparing the decrypted authentication tag with the stored authentication tag to obtain a comparison result includes: determining whether the sum of the decrypted n random numbers is equal to 0; determining whether the i-th decrypted random number is equal to the i-th stored random number, 1≤i≤n, where i is an integer; based on the comparison result, determining whether the data uploaded by the user terminal is lost includes: when the sum of the decrypted n random numbers is equal to 0, and the i-th decrypted random number is equal to the i-th stored random number, it is determined that the data uploaded by the user terminal is not lost.

[0014] Secondly, embodiments of this application provide a data processing apparatus applied to an aggregator. The data processing apparatus includes: an acquisition module for acquiring encrypted data uploaded by multiple user terminals; an aggregation module for decrypting the encrypted data uploaded by the multiple user terminals and aggregating the decrypted data; a generation module for generating noise based on the aggregated data; an addition module for adding noise to the aggregated data to obtain data with added noise; and a sending module for sending the data with added noise to a cloud server.

[0015] Thirdly, embodiments of this application provide an electronic device, which includes: a processor, a memory, and a computer program stored in the memory and executable on the processor. When the computer program is executed by the processor, it implements the steps of the data processing method provided in the first aspect.

[0016] Fourthly, embodiments of this application provide a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the data processing method provided in the first aspect.

[0017] The data processing method, apparatus, device, and computer-readable storage medium of this application embodiment are applied to an aggregator. Before sending data uploaded by multiple user terminals to a cloud server for analysis, the data uploaded by multiple user terminals is aggregated, and noise is added to the aggregated data for perturbation. This eliminates the need for the cloud server to decrypt the data uploaded by each user terminal individually, and also increases the protection against perturbation in the aggregated data. Thus, while protecting data privacy, it reduces the time spent by the cloud server to decrypt the data. Attached Figure Description

[0018] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments of this application will be briefly introduced below. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0019] Figure 1 This is a schematic diagram of an application architecture according to an embodiment of this application;

[0020] Figure 2 This is a schematic diagram of the data upload process in related technologies;

[0021] Figure 3 A schematic flowchart of a data processing method provided in an embodiment of this application;

[0022] Figure 4 This is an operational schematic diagram of the data processing method provided in an embodiment of this application;

[0023] Figure 5 This is a schematic diagram illustrating an operation of a noise generation method in related technologies.

[0024] Figure 6 Another flowchart illustrating the data processing method provided in this application embodiment;

[0025] Figure 7 A schematic diagram of operations S302 and S303 in the data processing method provided in the embodiments of this application;

[0026] Figure 8 A flowchart illustrating step S304 of the data processing method provided in this application embodiment;

[0027] Figure 9 Another flowchart illustrating the data processing method provided in this application embodiment;

[0028] Figure 10 A schematic diagram of the structure of a data processing apparatus provided in an embodiment of this application;

[0029] Figure 11A schematic diagram of the hardware structure of the electronic device provided in an embodiment of this application is shown. Detailed Implementation

[0030] The features and exemplary embodiments of various aspects of this application will be described in detail below. To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings and specific embodiments. It should be understood that the specific embodiments described herein are only intended to explain this application and not to limit it. For those skilled in the art, this application can be implemented without some of these specific details. The following description of the embodiments is merely to provide a better understanding of this application by illustrating examples.

[0031] It should be noted that, in this document, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, 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, article, or apparatus. Without further limitations, an element defined by the phrase "comprising..." does not exclude the presence of additional identical elements in the process, method, article, or apparatus that includes said element.

[0032] It should be understood that the term "and / or" used in this article is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. Additionally, the character " / " in this article generally indicates that the preceding and following related objects have an "or" relationship.

[0033] Various modifications and variations can be made to this application without departing from its spirit or scope, which will be apparent to those skilled in the art. Therefore, this application is intended to cover modifications and variations falling within the scope of the corresponding claims (the claimed technical solutions) and their equivalents. It should be noted that the embodiments provided in this application can be combined with each other without contradiction.

[0034] Before describing the technical solutions provided in the embodiments of this application, in order to facilitate understanding of the embodiments of this application, this application first specifically explains the problems existing in the related technologies:

[0035] With the advent of the big data era, more and more users are entrusting their data to cloud servers for analysis and storage, leveraging these servers to collaboratively extract valuable information. In a cloud computing environment, multiple data owners on a client side each upload their data to the cloud server for analysis. Because a cloud server is an open space, data owners find it difficult to allow untrusted entities to access their data. For example, multiple similar companies might want to use a cloud server to build a data analyzer to analyze user consumption patterns based on their collected user data. These companies can upload their data to the cloud server, but in this case, the cloud server, acting as the data analyst, treats the data uploaded by each company as their sensitive information.

[0036] Given data privacy concerns, no company wants to disclose its personal information to other companies. When cloud servers analyze collected data, they must obtain accurate results without revealing sensitive information about individual companies. Therefore, it is necessary to address the privacy leakage issue when analyzing multi-source user data on cloud servers and to release highly usable data after the analysis is complete.

[0037] In scenarios with multiple data owners, there is a risk of data leakage between different owners. Furthermore, information leakage may occur during data upload, leading to data incompleteness and impacting data analysis results. Data encryption technology is often used to address these issues, with multiple data owners each encrypting their data before uploading it to a cloud server, which then decrypts and analyzes the data. However, this method is inefficient; decrypting data separately on the cloud server reduces its overall data analysis efficiency.

[0038] To address the aforementioned technical problems, embodiments of this application provide a data processing method, apparatus, device, and computer-readable storage medium that can reduce the time spent by cloud servers decrypting data while protecting data privacy.

[0039] To facilitate understanding, the application architecture / application scenarios of the embodiments of this application will be introduced first below.

[0040] Figure 1 This is a schematic diagram of an application architecture according to an embodiment of this application. Figure 1As shown, the application architecture of this application embodiment may include a data aggregation layer 11, a privacy protection layer 12, and a data application layer 13. In the data aggregation layer 11, the aggregator 110 can generate a public key and a private key using the RSA asymmetric encryption algorithm and send the public key to the data owner (i.e., the user or client). The data owner uses the public key to encrypt their data and then sends the ciphertext to the aggregator 110. Simultaneously, the aggregator 110 can generate parameters for data perturbation, aggregating the data for perturbation. In some examples, reversible perturbation can be applied to the aggregated data.

[0041] In privacy protection layer 12, the cloud server can perform data analysis and share the data after receiving the overall perturbation data uploaded by aggregator 110. In some examples, authorized users can only reversibly recover the original data from the perturbation data after obtaining the key. In data application layer 13, the privacy-protected data from multiple data owners can be applied to various services such as medical systems, classification models, and analytical predictions.

[0042] Figure 2 This is a schematic diagram of the data upload process in related technologies. (Combined with...) Figure 1 and Figure 2 As shown, in data aggregation layer 11, assuming multiple data owners upload their data to the cloud server for analysis, if each owner encrypts their data before uploading, decryption would incur significant time overhead for the cloud server, and it also cannot guarantee the secure and complete reception of each data owner's information by the cloud server. Therefore, a data aggregator (hereinafter referred to as the aggregator) is introduced to aggregate the encrypted data from each data owner during the upload process. To ensure data integrity during analysis while maintaining data availability, the aggregated data is perturbed before being uploaded to the cloud server, thereby reducing the cloud server's decryption time.

[0043] The data processing method provided in the embodiments of this application is described below. The data processing method provided in the embodiments of this application can be applied to an aggregator. An aggregator can be understood as a data relay mechanism used to collect data from various user terminals (or clients), integrate it, and send it to a cloud server for data analysis.

[0044] Figure 3 This is a schematic flowchart of a data processing method provided in an embodiment of this application. Figure 3 As shown, the data processing method provided in this application embodiment may include the following steps S301 to S305.

[0045] S301. Obtain the encrypted data uploaded by multiple user terminals.

[0046] Figure 4This is a schematic diagram illustrating an operation of the data processing method provided in an embodiment of this application. (In conjunction with...) Figure 4 As shown, there are multiple user terminals, i.e. multiple data owners 100, and the aggregator 110 can obtain the encrypted data uploaded by each of the multiple data owners 100.

[0047] S302. Decrypt the encrypted data uploaded by multiple user terminals and aggregate the decrypted data.

[0048] Combination Figure 4 As shown, the aggregator 110 can decrypt the encrypted data uploaded by multiple data owners 100 and aggregate the decrypted data.

[0049] S303. Noise is generated based on the aggregated data.

[0050] S304. Add noise to the aggregated data to obtain the data with added noise.

[0051] Data with added noise can also be called perturbed data. (Combined with...) Figure 4 As shown, aggregator 110 can add noise to the aggregated data to obtain perturbed data.

[0052] S305. Send the data with added noise to the cloud server.

[0053] Combination Figure 4 As shown, aggregator 110 can send data with added noise (i.e., perturbation data) to cloud server 120. Cloud server 120 can perform data analysis based on the perturbation data uploaded by aggregator 110.

[0054] After obtaining the data owner's data, the cloud server performs data analysis. However, since the cloud computing environment is not completely secure, external attackers can also attack the cloud server to obtain private information. Therefore, this application embodiment protects the data from disturbance before data analysis.

[0055] The data processing method of this application embodiment is applied to an aggregator. Before sending data uploaded by multiple user terminals to a cloud server for analysis, the data uploaded by multiple user terminals is aggregated and noise is added to the aggregated data for perturbation. This eliminates the need for the cloud server to decrypt the data uploaded by each user terminal one by one, and also increases the protection against perturbation of the aggregated data. Thus, it can protect data privacy while reducing the time spent by the cloud server to decrypt the data.

[0056] The specific implementation methods for each of the above steps are described below.

[0057] As mentioned above, the embodiments of this application perform perturbation protection on the data before data analysis. Data perturbation can protect privacy without disrupting the original data distribution pattern by adding noise to the original data.

[0058] However, further research by the inventors of this application revealed that while some current noise-adding methods meet privacy protection requirements, they do not consider whether the perturbed data has high usability. Geometric perturbation is used to process the data before clustering, and then the perturbed data is clustered again. However, all of the above noise-adding methods involve irreversible perturbations, meaning authorized users cannot reversibly recover the original data according to their own needs.

[0059] Figure 5 This is a schematic diagram illustrating one operation of a noise generation method in related technologies. For example... Figure 5 As shown, in the original noise generation method, noise is generated through cumulative calculation. After clustering, the sum of squared errors (SSE) of each cluster is calculated, and the cluster containing the maximum SSE is selected. max Where center is the cluster center, point is the point in the cluster farthest from the cluster center, d is the distance between the cluster center and point, and noise is the generated noise. After obtaining the farthest data point in the cluster, the first noise, noise1, is generated based on the distance between the cluster center and this data point and the offset ratio α. Then, this noise is used as the basis for generating the second noise, noise2, and this step is repeated until the cumulative number of generated noises reaches |N|. The noise set and the number of generated noises are calculated according to the following formula. Where point u It is the vector representation of the data point. It is the generated noise vector.

[0060]

[0061]

[0062] N = {noise1, noise2, ..., noise} |N|}(|N|=|D|×r) (3)

[0063] However, the cumulative noise generation will cause the subsequent noise to be further away from the cluster. max getting farther and farther away, like Figure 5 As shown, data perturbation affects the availability of perturbed data. Furthermore, this method only selects to generate noise based on the data relationships within a single cluster, without taking into account the impact of noise generated from other clusters on the data clustering characteristics.

[0064] Figure 6This is another schematic flowchart illustrating the data processing method provided in an embodiment of this application. Figure 6 As shown, according to some embodiments of this application, optionally, step S302, decrypting the encrypted data uploaded by multiple user terminals and aggregating the decrypted data, may include the following steps:

[0065] Based on the target clustering algorithm, the decrypted data is clustered to obtain multiple clusters.

[0066] The target clustering algorithms include, but are not limited to, the k-means clustering algorithm. Based on the k-means clustering algorithm, decrypted data can be clustered into multiple clusters. Each cluster can include a portion of the decrypted data.

[0067] For example, k-means clustering can be performed on the dataset D composed of decrypted data to obtain k clusters, where k is a positive integer.

[0068] Accordingly, S303, generating noise based on the aggregated data, may include the following steps S3031 to S3033.

[0069] S3031. Calculate the sum of squared errors for each cluster.

[0070] In S3031, the sum of squared errors SSE for each cluster can be calculated.

[0071] S3032. Select the clusters corresponding to the sum of squared errors of the first X clusters as the target clusters, in descending or ascending order of the sum of squared errors, where X is an integer greater than 1.

[0072] In S3032, the sum of squared errors (SSE) of each cluster can be sorted. After sorting, the cluster with the X largest SSEs or the X smallest SSEs is selected as the target cluster.

[0073] S3033. For any target cluster, determine the target data that is farthest from the center of the target cluster, and obtain the noise based on the target data, the preset offset ratio, and the distance between the target data and the center of the target cluster.

[0074] Figure 7 This is a schematic diagram illustrating operations S302 and S303 in the data processing method provided in this application embodiment. For example... Figure 7 As shown, taking the clusters with the top X largest SSEs as the target clusters, and X=2 as an example, in order to control noise generation and preserve the original data as much as possible, so as to achieve the goal of the protected data being similar to the original data, corresponding noise is generated in multiple clusters. For example... Figure 7As shown, assuming the data is clustered into three clusters: Cluster1, Cluster2, and Cluster3, the SSE of each of these three clusters is calculated, and the two clusters with the largest SSE are selected to generate noise. Here, center1 and center2 are the cluster centers of Cluster1 and Cluster2, respectively, and point1 and point2 are the points farthest from the center within each cluster. Unlike the original cumulative noise generation, this embodiment calculates and generates corresponding noise sets in each selected cluster, as shown in expression (4) below. Figure 7 As shown, noise1 and noise2 are generated in clusters Cluster1 and Cluster2, respectively. Since each noise is generated based on the similarity between the data in each corresponding cluster, the disturbance amplitude is smaller than the cumulative noise.

[0075]

[0076] in, This represents the noise obtained from the j-th target cluster. Let α represent the target data (point) in the j-th target cluster that is farthest from the center of the j-th target cluster, where α represents the offset ratio, d represents the distance between the target data in the j-th target cluster and the center of the j-th target cluster, and j is a positive integer.

[0077] In some embodiments, a set of noise can be generated based on the clusters with the largest SSE and a set of noise can be generated based on the clusters with the largest SSE. The two sets of noise are then compared, and a set of noise is selected as the final noise to be used based on the comparison results.

[0078] Figure 8 This is a schematic flowchart of step S304 in the data processing method provided in an embodiment of this application. Figure 8 As shown, according to some embodiments of this application, optionally, step S304, adding noise to the data after aggregation processing to obtain data with added noise, may include the following steps S801 and S802.

[0079] S801, Calculate the target location of the noise in the aggregated data.

[0080] In some specific embodiments, optionally, in order to effectively hide noise, a random seed can be used to determine the target location where the noise is placed in the aggregated data, that is, to randomly select the target location where the noise is placed in the aggregated data.

[0081] For example, the target location of noise in the aggregated data can be determined based on the following expression (5).

[0082] pj =|D|×Rand(s) (5)

[0083] Where, p j Let D represent the target location where the j-th noise should be placed, and Rand(s) represent the random seed. In some examples, D can be equal to X, which represents the number of target clusters.

[0084] S802, Add noise at the target location.

[0085] At the location p where noise is placed j Then, the noise can be... j u Placed in the aggregated data p j Once all noise has been removed, the perturbation data is obtained.

[0086] Therefore, in order to effectively control the data disturbance amplitude during the disturbance process, the embodiments of this application generate noise based on intra-cluster data similarity to disturb the original data, so as not to damage the original data and cause the privacy-preserving data to be significantly different from the original data, and not to reduce the availability of the privacy-preserving data.

[0087] Figure 9 This is another schematic flowchart illustrating the data processing method provided in an embodiment of this application. For example... Figure 9 As shown, according to some embodiments of this application, optionally, after sending the data with added noise to the cloud server in S305, the data processing method may further include the following steps S901 to S903.

[0088] S901: Receive a request from an authorized user client to view the data after noise removal.

[0089] S902. In response to the request, encrypt the random seed.

[0090] S903. Send the encrypted random seed to the authorized user terminal.

[0091] After receiving the encrypted random seed, an authorized client can decrypt it to obtain the decrypted random seed. The authorized client can then use the random seed to determine the target location of the noise and remove the noise from that location. An authorized client refers to a client that has been authorized to perform any task. Random seeds are not issued to unauthorized or unverified clients to ensure data security.

[0092] In the data recovery phase, noise at corresponding locations is identified from the perturbed dataset and removed to enable rapid and reversible recovery of the original dataset. The random seed used for reversible data recovery is crucial for privacy and security. When a user wants to extract specific information about the original data from the perturbed data, they can only achieve reversible recovery of the original data after obtaining the random seed. However, considering user data privacy, if the random seed is published on the cloud server along with the perturbed data, the shared nature of data in the cloud environment, coupled with the fact that the cloud server is not fully trusted, could lead to the recovery of the original information from the perturbed data, infringing on the data owner's privacy. Therefore, in some embodiments, the random seed used for reversible recovery of the original data may not be sent to the cloud server. To further enhance the security of authorized user access, the random seed used for reversible recovery can be stored in an aggregator and subjected to simple encryption to ensure the security of data stored on the cloud server.

[0093] According to some embodiments of this application, optionally, S902, in response to a request, encrypting the random seed may include the following steps one and two.

[0094] Step 1: Receive the first public key sent by the authorized user.

[0095] Step 2: Encrypt the random seed using the first public key.

[0096] The authorized client is used to decrypt the encrypted random seed using the first private key corresponding to the first public key, and obtain the decrypted random seed.

[0097] After an authorized user requests a random seed from the aggregator to reversibly access the original data, the authorized user can generate its own public-private key pair and then send the public key to the aggregator. Here, for ease of distinction, the public key sent by the authorized user is called the first public key, and the private key corresponding to the first public key is called the first private key.

[0098] After receiving the first public key from the authorized user, the aggregator uses the first public key to encrypt the random seed and sends the encrypted random seed as ciphertext to the authorized user. Finally, the authorized user uses their first private key to decrypt the random seed and reversibly recover the original data from the perturbed data published on the cloud server.

[0099] Thus, the embodiments of this application can reversibly recover disturbed data while protecting data privacy, thereby meeting user needs.

[0100] The inventors of this application further realized that when a user uploads data to an aggregator, there may be external attackers blocking communication between the user and the aggregator during the upload process, resulting in the data not being fully uploaded to the cloud server, which will affect the accuracy of the cloud server's data analysis results.

[0101] In view of this, the embodiments of this application consider verifying the integrity of data during the upload process. Furthermore, considering that introducing encryption technologies such as digital signatures to verify the integrity of uploaded data increases the time overhead of the cloud server during encryption and decryption. To address the above issues, the embodiments of this application introduce authentication tags to verify the integrity of uploaded data when using data aggregation technology to aggregate data. The user client transmits the authentication tag along with the data. By comparing the difference between the initial tag of the data owner and the authentication tag decrypted by the aggregator, it is determined whether data was lost during the upload process, thus ensuring the accuracy of the data analysis results.

[0102] Specifically, before obtaining the encrypted data uploaded by multiple user terminals in step S301, the data processing method may also include steps three and four.

[0103] Step 3: Generate the second public key and authentication tag.

[0104] The aggregator can generate public-private key pairs and then send the public key to the user. For clarity, the public key sent by the aggregator is referred to as the second public key, and the corresponding private key is referred to as the second private key. Furthermore, the aggregator can also generate authentication tags, which can be used to verify whether data was lost during the upload process.

[0105] Step 4: Send the second public key and authentication tag to the user terminal.

[0106] After receiving the second public key and the authentication tag, the user client can encrypt the data uploaded by the user client and the authentication tag based on the second public key.

[0107] Accordingly, S301, obtaining the encrypted data uploaded by multiple user terminals, may include the following steps:

[0108] Obtain data encrypted using the second public key and authentication tags encrypted using the second public key from each user terminal.

[0109] Accordingly, S302, decrypting the encrypted data uploaded by multiple user terminals may include the following steps five to seven.

[0110] Step 5: Using the second private key corresponding to the second public key, decrypt the data encrypted with the second public key and the authentication tag encrypted with the second public key to obtain the decrypted data and the decrypted authentication tag.

[0111] Step 6: Compare the decrypted authentication tag with the stored authentication tag to obtain the comparison result.

[0112] The aggregator can store the authentication tags sent to the user and compare the decrypted authentication tags with the stored authentication tags to obtain the comparison result.

[0113] Step 7: Based on the comparison results, determine whether any data uploaded by the user has been lost.

[0114] For example, if the decrypted authentication tag matches the stored authentication tag, it is determined that the data uploaded by the user has not been lost. If the decrypted authentication tag does not match the stored authentication tag, it is determined that the data uploaded by the user has been lost.

[0115] In some specific embodiments, the authentication tag may optionally include n non-zero random numbers, where n is a positive integer.

[0116] Specifically, during the authentication tag generation phase, the aggregator can generate a key pair for the user (i.e., the data owner) and send the second public key to the data owner who needs to upload the data. In some embodiments, the aggregator can generate two large prime numbers P and Q randomly, and calculate the common modulus N = P * Q and the Euler's totient function when pairing the key pair. Then calculate the second public key E, where E takes the value of an integer, and E and They must be coprime numbers, and The calculation formula is as follows:

[0117]

[0118] Then, the parameters required for data perturbation are generated, including the number of clusters, noise ratio, offset ratio, and random seed. Simultaneously, the aggregator generates n non-zero random numbers σ1, σ2…σ n This is used to verify the integrity of data transmission, where σ1+σ2+…+σ n =0. Finally, the aggregator distributes the second public key and the random number to the user (i.e., the data owner) for encrypting the data.

[0119] During the aggregation verification phase, users encrypt their private data before forwarding it to the aggregator, as shown in the following formula:

[0120] C=M E mod N (7)

[0121] Where M is the encrypted plaintext, and each piece of data has a random number σ added to it. iAll data is encrypted together. The aggregator then aggregates the ciphertext data of all data owners {C1, C2…Ci}, and finally decrypts the data to obtain n random number labels {σ'1, σ'2…σ'}. n}, and authenticate it.

[0122] Accordingly, step six, comparing the decrypted authentication tag with the stored authentication tag to obtain the comparison result, may include the following steps:

[0123] Determine if the sum of the n decrypted random numbers is equal to 0;

[0124] Determine whether the i-th random number after decryption is equal to the i-th random number stored, where 1 ≤ i ≤ n, and i is an integer.

[0125] For example, determine the n random numbers σ'1+σ'2+…+σ' after decryption. n To determine if the result is equal to 0, check the i-th random number σ' after decryption. i Is it equal to the stored i-th random number σ? i .

[0126] Step 7: Based on the comparison results, determine whether any data uploaded by the user has been lost.

[0127] When the sum of the n decrypted random numbers is equal to 0, and the i-th decrypted random number is equal to the i-th stored random number, it is determined that the data uploaded by the user has not been lost.

[0128] If σ'1+σ'2+…+σ' n =0 and σ' i =σ i This confirms that the received data truly originates from the respective user terminals and that no data uploaded by the user terminals has been lost. Subsequently, the aggregator reversibly perturbs the aggregated data before uploading it to the cloud server.

[0129] If σ'1+σ'2+…+σ' n ≠0 or σ' i ≠σ i If so, it confirms that the data uploaded by the user has been lost.

[0130] This application proposes a data processing method for multi-data-owner applications. Addressing the issue that added noise reduces the correlation between the original and disturbed data, this method proposes reversible perturbation based on inter-cluster similarity in data aggregation. First, data aggregation is introduced in a cloud computing environment to securely collect data from multiple data owners. Then, a noise generation method based on data aggregation characteristics is used to reversibly perturb the data. This application uses a classification algorithm to detect the impact of the original dataset and the noise-added disturbed dataset on data usability. Compared with other technologies, this application achieves privacy differences while maintaining classification accuracy similar to the original dataset, and fulfills the requirement for authorized users to reversibly recover the original data.

[0131] Based on the data processing method provided in the above embodiments, this application also provides specific implementations of a data processing apparatus. The data processing apparatus provided in this application can be applied to an aggregator. Please refer to the following embodiments.

[0132] Figure 10 This is a schematic diagram of a data processing apparatus provided in an embodiment of this application. Figure 10 As shown, the data processing apparatus 1000 provided in this application embodiment may include the following modules:

[0133] The acquisition module 1001 is used to acquire encrypted data uploaded by multiple user terminals.

[0134] The aggregation module 1002 is used to decrypt encrypted data uploaded by multiple user terminals and aggregate the decrypted data.

[0135] Generation module 1003 is used to generate noise based on the aggregated data;

[0136] Add module 1004 to add noise to the aggregated data to obtain the data with added noise;

[0137] The sending module 1005 is used to send the data with added noise to the cloud server.

[0138] The data processing apparatus of this application embodiment is applied to an aggregator. Before sending data uploaded by multiple user terminals to a cloud server for analysis, it aggregates the data uploaded by multiple user terminals and adds noise to the aggregated data for perturbation. This eliminates the need for the cloud server to decrypt the data uploaded by each user terminal individually and increases the protection against perturbation in the aggregated data. As a result, it can protect data privacy while reducing the time spent by the cloud server to decrypt the data.

[0139] According to some embodiments of this application, optionally, the aggregation module 1002 is specifically used to cluster the decrypted data based on a target clustering algorithm to obtain multiple clusters. The generation module 1003 is specifically used to calculate the sum of squared errors of each cluster; select the clusters corresponding to the top X sums of squared errors as target clusters according to the order of the sum of squared errors from largest to smallest or smallest to largest, where X is an integer greater than 1; for any target cluster, determine the target data farthest from the center of the target cluster, and obtain the noise based on the target data, a preset offset ratio, and the distance between the target data and the center of the target cluster.

[0140] According to some embodiments of this application, optionally, the adding module 1004 is specifically used to calculate the target position of the noise in the aggregated data; and add noise at the target position.

[0141] According to some embodiments of this application, optionally, the addition module 1004 is specifically used to determine the target location of the noise in the aggregated data based on a random seed.

[0142] Optionally, according to some embodiments of this application, the data processing apparatus 1000 provided in the embodiments of this application may include a response module for receiving a request from an authorized user terminal to view data after noise removal; in response to the request, encrypting a random seed; and sending the encrypted random seed to the authorized user terminal so that the authorized user terminal can determine the target location of the noise based on the random seed and remove the noise at the target location.

[0143] According to some embodiments of this application, optionally, the response module is specifically used to receive a first public key sent by an authorized user terminal; encrypt a random seed using the first public key; and the authorized user terminal is used to decrypt the encrypted random seed using a first private key corresponding to the first public key to obtain a decrypted random seed.

[0144] Optionally, according to some embodiments of this application, the data processing apparatus 1000 provided in this application embodiment may include an authentication module for generating a second public key and an authentication tag; and sending the second public key and the authentication tag to the user terminal. The acquisition module 1001 is specifically used to acquire data encrypted based on the second public key and the authentication tag encrypted based on the second public key from each user terminal. The authentication module is also used to decrypt the data encrypted based on the second public key and the authentication tag encrypted based on the second public key using the second private key corresponding to the second public key, obtaining decrypted data and decrypted authentication tags; comparing the decrypted authentication tags with stored authentication tags to obtain a comparison result; and based on the comparison result, determining whether the data uploaded by the user terminal has been lost.

[0145] According to some embodiments of this application, optionally, the authentication tag includes n non-zero random numbers, where n is a positive integer. Specifically, the authentication module is used to determine whether the sum of the decrypted n random numbers is equal to 0; to determine whether the i-th decrypted random number is equal to the stored i-th random number, 1 ≤ i ≤ n, where i is an integer; when the sum of the decrypted n random numbers is equal to 0, and the i-th decrypted random number is equal to the stored i-th random number, it is determined that the data uploaded by the user terminal has not been lost.

[0146] Figure 10 Each module / unit in the device shown has the function of implementing each step of the data processing method provided in the above method embodiments, and can achieve its corresponding technical effect. For the sake of brevity, it will not be described in detail here.

[0147] Based on the data processing method provided in the above embodiments, this application also provides specific implementation methods for electronic devices. Please refer to the following embodiments.

[0148] Figure 11 A schematic diagram of the hardware structure of the electronic device provided in an embodiment of this application is shown.

[0149] The electronic device may include a processor 1101 and a memory 1102 storing computer program instructions.

[0150] Specifically, the processor 1101 may include a central processing unit (CPU), an application specific integrated circuit (ASIC), or one or more integrated circuits that can be configured to implement the embodiments of this application.

[0151] Memory 1102 may include mass storage for data or instructions. For example, and not limitingly, memory 1102 may include a hard disk drive (HDD), floppy disk drive, flash memory, optical disk, magneto-optical disk, magnetic tape, or Universal Serial Bus (USB) drive, or a combination of two or more of these. In one example, memory 1102 may include removable or non-removable (or fixed) media, or memory 1102 may be non-volatile solid-state memory. Memory 1102 may be internal or external to an electronic device.

[0152] In one example, memory 1102 may be read-only memory (ROM). In one example, the ROM may be a mask-programmed ROM, a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), an electrically rewritable ROM (EAROM), or flash memory, or a combination of two or more of these.

[0153] Memory 1102 may include read-only memory (ROM), random access memory (RAM), disk storage media device, optical storage media device, flash memory device, electrical, optical, or other physical / tangible memory storage device. Therefore, generally, memory includes one or more tangible (non-transitory) computer-readable storage media (e.g., memory devices) encoded with software including computer-executable instructions, and when the software is executed (e.g., by one or more processors), it is operable to perform the operations described with reference to the method according to one aspect of this application.

[0154] The processor 1101 reads and executes the computer program instructions stored in the memory 1102 to implement the methods / steps in the above method embodiments and achieve the corresponding technical effects achieved by the method embodiments in executing their methods / steps. For the sake of brevity, these will not be elaborated here.

[0155] In one example, the electronic device may also include a communication interface 1103 and a bus 1110. For example, Figure 11 As shown, the processor 1101, memory 1102, and communication interface 1103 are connected through bus 1110 and complete communication with each other.

[0156] The communication interface 1103 is mainly used to realize communication between various modules, devices, units and / or equipment in the embodiments of this application.

[0157] Bus 1110 includes hardware, software, or both, that couples components of an electronic device together. For example, and not limitingly, the bus may include an Accelerated Graphics Port (AGP) or other graphics bus, an Extended Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), a Hyper Transport (HT) interconnect, an Industry Standard Architecture (ISA) bus, an Infinite Bandwidth Interconnect, a Low Pin Count (LPC) bus, a memory bus, a Microchannel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association Local (VLB) bus, or other suitable buses, or combinations of two or more of these. Where appropriate, bus 1110 may include one or more buses. Although specific buses are described and illustrated in embodiments of this application, this application contemplates any suitable bus or interconnect.

[0158] Furthermore, in conjunction with the data processing methods in the above embodiments, this application embodiment can provide a computer-readable storage medium for implementation. This computer-readable storage medium stores computer program instructions; when these computer program instructions are executed by a processor, they implement any of the data processing methods in the above embodiments. Examples of computer-readable storage media include non-transitory computer-readable storage media, such as electronic circuits, semiconductor memory devices, ROM, random access memory, flash memory, erasable ROM (EROM), floppy disks, CD-ROMs, optical disks, and hard disks.

[0159] It should be clarified that this application is not limited to the specific configurations and processes described above and shown in the figures. For the sake of brevity, detailed descriptions of known methods are omitted here. In the above embodiments, several specific steps are described and shown as examples. However, the method process of this application is not limited to the specific steps described and shown. Those skilled in the art can make various changes, modifications, and additions, or change the order of steps, after understanding the spirit of this application.

[0160] The functional blocks shown in the above-described block diagram can be implemented as hardware, software, firmware, or a combination thereof. When implemented in hardware, they can be, for example, electronic circuits, application-specific integrated circuits (ASICs), appropriate firmware, plug-ins, function cards, etc. When implemented in software, the elements of this application are programs or code segments used to perform the required tasks. Programs or code segments can be stored on a machine-readable medium or transmitted over a transmission medium or communication link via data signals carried on a carrier wave. "Machine-readable medium" can include any medium capable of storing or transmitting information. Examples of machine-readable media include electronic circuits, semiconductor memory devices, ROM, flash memory, erasable ROM (EROM), floppy disks, CD-ROMs, optical disks, hard disks, fiber optic media, radio frequency (RF) links, etc. Code segments can be downloaded via computer networks such as the Internet, intranets, etc.

[0161] It should also be noted that the exemplary embodiments mentioned in this application describe methods or systems based on a series of steps or apparatus. However, this application is not limited to the order of the above steps; that is, the steps can be performed in the order mentioned in the embodiments, or in a different order, or several steps can be performed simultaneously.

[0162] The aspects of this application have been described above with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It should be understood that each block in 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, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that these instructions, executable via the processor of the computer or other programmable data processing apparatus, enable the implementation of the functions / actions specified in one or more blocks of the flowchart illustrations and / or block diagrams. Such a processor can be, but is not limited to, a general-purpose processor, a special-purpose processor, a special application processor, or a field-programmable logic circuit. It is also understood that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can also be implemented by dedicated hardware performing the specified functions or actions, or can be implemented by a combination of dedicated hardware and computer instructions.

[0163] The above description is merely a specific implementation of this application. Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, modules, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here. It should be understood that the protection scope of this application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in this application, and these modifications or substitutions should all be covered within the protection scope of this application.

Claims

1. A data processing method, characterized in that, Applied to aggregators, including: Retrieve encrypted data uploaded by multiple user clients; Decrypt the encrypted data uploaded by multiple user terminals and then aggregate the decrypted data. Noise is generated based on the aggregated data; The noise is added to the aggregated data to obtain the data with added noise. The data with added noise is sent to the cloud server; The step of decrypting the encrypted data uploaded by multiple user terminals and aggregating the decrypted data includes: clustering the decrypted data based on a target clustering algorithm to obtain multiple clusters; The noise generation based on the aggregated data includes: calculating the sum of squared errors for each cluster; selecting the top X clusters corresponding to the sums of squared errors in descending or ascending order as target clusters, where X is an integer greater than 1; for any target cluster, determining the target data farthest from the center of the target cluster, and obtaining the noise based on the target data, a preset offset ratio, and the distance between the target data and the center of the target cluster.

2. The method according to claim 1, characterized in that, The step of adding the noise to the aggregated data to obtain the noise-added data includes: Calculate the target location of the noise in the aggregated data; The noise is added at the target location.

3. The method according to claim 2, characterized in that, The calculation of the target location of the noise in the aggregated data includes: The target location for placing the noise in the aggregated data is determined based on a random seed.

4. The method according to claim 3, characterized in that After sending the noise-added data to the cloud server, the method further includes: Receive requests from authorized users to view the noise-removed data; In response to the request, the random seed is encrypted; The encrypted random seed is sent to the authorized user terminal so that the authorized user terminal can determine the target location of the noise based on the random seed and remove the noise at the target location.

5. The method according to claim 4, characterized in that, The step of encrypting the random seed in response to the request includes: Receive the first public key sent by the authorized user terminal; The random seed is encrypted using the first public key; The authorized user terminal is used to decrypt the encrypted random seed using the first private key corresponding to the first public key, and obtain the decrypted random seed.

6. The method according to claim 1, characterized in that, Before obtaining the encrypted data uploaded by each of the multiple user terminals, the method further includes: Generate a second public key and authentication tag; Send the second public key and authentication tag to the user terminal; The step of obtaining encrypted data uploaded by multiple user terminals includes: Obtain the data encrypted by each user terminal based on the second public key and the authentication tag encrypted based on the second public key; The process of decrypting encrypted data uploaded by multiple user terminals includes: Using the second private key corresponding to the second public key, the data encrypted based on the second public key and the authentication tag encrypted based on the second public key are decrypted to obtain the decrypted data and the decrypted authentication tag. The decrypted authentication tag is compared with the stored authentication tag to obtain the comparison result; Based on the comparison results, it is determined whether any data uploaded by the user client has been lost.

7. The method according to claim 6, characterized in that, The authentication tag consists of n non-zero random numbers, where n is a positive integer; The step of comparing the decrypted authentication tag with the stored authentication tag to obtain the comparison result includes: Determine if the sum of the n decrypted random numbers is equal to 0; Determine whether the i-th random number after decryption is equal to the i-th random number stored, where 1 ≤ i ≤ n, and i is an integer; The step of determining whether the data uploaded by the user terminal is lost based on the comparison results includes: When the sum of the n decrypted random numbers is equal to 0, and the i-th decrypted random number is equal to the i-th stored random number, it is determined that the data uploaded by the user terminal has not been lost.

8. A data processing apparatus, characterized in that, Applied to aggregators, including: The acquisition module is used to acquire encrypted data uploaded by multiple user terminals. The aggregation module is used to decrypt encrypted data uploaded by multiple user terminals and then aggregate the decrypted data. The generation module is used to generate noise based on the aggregated data. An addition module is used to add the noise to the aggregated data to obtain data with added noise. The sending module is used to send the data with added noise to the cloud server; Specifically, the above-mentioned aggregation module can be used to: cluster the decrypted data based on the target clustering algorithm to obtain multiple clusters; Specifically, the above-mentioned generation module can be used to: calculate the sum of squared errors for each cluster; select the top X clusters corresponding to the sum of squared errors in descending or ascending order as target clusters, where X is an integer greater than 1; for any target cluster, determine the target data farthest from the center of the target cluster, and obtain the noise based on the target data, a preset offset ratio, and the distance between the target data and the center of the target cluster.

9. An electronic device, characterized in that, The electronic device includes: a processor, a memory, and a computer program stored in the memory and executable on the processor, wherein the computer program, when executed by the processor, implements the steps of the data processing method as described in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, A computer program is stored on the computer-readable storage medium, which, when executed by a processor, implements the steps of the data processing method as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Data encryption transmission method, device and system

    CN115694926A

  • Verifiable service provider performance regarding query response provision

    US20220188446A1