Deduplication and integrity verification method for cloud encrypted data
By generating private keys and public parameters in the cloud server, the user side encrypts and generates hash values to determine whether the same encrypted data is stored in the cloud server, and performs proof of ownership and data integrity verification, solving the problem of storing a large amount of duplicate data and lack of data integrity verification in the cloud server, and achieving efficient data deduplication and data security verification.
Patent Information
- Application Number
- CN202211446357.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-18
- Publication Date
- 2025-04-22
- Estimated Expiration
- 2042-11-18
AI Technical Summary
In the prior art, a large amount of duplicate data may be stored in cloud servers, and the data integrity verification function is lacking, resulting in low storage space utilization and insufficient data security.
By generating private keys and public parameters in the cloud server, the user side encrypts the uploaded data and generates a hash value to determine whether the same encrypted data is stored in the cloud server. If present, proof of ownership is performed and a proof of data integrity is generated to verify data integrity.
Effectively deduplication, avoid storing duplicate data, improve storage space utilization, and ensure data security through data integrity verification function to avoid errors caused by incomplete data.
Smart Images

Figure CN115720168B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of cloud storage data processing, and in particular to a method for deduplication and integrity verification of cloud encrypted data. Background Art
[0002] With the development of science and technology, the speed of data generation and growth is increasing. In order to save storage space, users (individuals or enterprises) will upload data to cloud servers for storage. At the same time, in order to further improve the security of data, users can encrypt data and upload it to cloud servers.
[0003] In the prior art, different users will encrypt their corresponding data and upload them to the cloud server. The cloud server will allocate corresponding storage space for different users and store all the data uploaded by each user. The problem with the prior art is that different users may upload the same data, so a large amount of duplicate data may be stored in the cloud server, which is not conducive to improving the utilization rate of the storage space of the cloud server. At the same time, the cloud server in the prior art does not provide the function of data integrity verification. After uploading data to the cloud server, users cannot perform data integrity verification and can only directly download the data stored in the cloud server when they need to use it. However, they cannot determine whether the data in the cloud server is complete, and cannot avoid errors in the data use process caused by incomplete data, which is not conducive to improving the security of cloud data storage and use.
[0004] Therefore, the existing technology still needs to be improved and developed. Summary of the invention
[0005] The main purpose of the present invention is to provide a deduplication and integrity verification method for cloud encrypted data, aiming to solve the problem in the prior art that a large amount of duplicate data may be stored in the cloud server and the cloud server does not provide a data integrity verification function, which is not conducive to improving the utilization rate of the storage space of the cloud server and the security of cloud data storage and use.
[0006] In order to achieve the above-mentioned object, the first aspect of the present invention provides a method for deduplication and integrity verification of cloud encrypted data, wherein the method for deduplication and integrity verification of cloud encrypted data comprises:
[0007] The cloud server generates a private key and a public parameter, and discloses the public parameter, wherein the public parameter is a system parameter generated by the cloud server and can be publicly obtained by the user end, and the public parameter includes the public key of the cloud server;
[0008] The user terminal obtains the data to be uploaded, encrypts the data to be uploaded to obtain encrypted data, and sends a hash value of the encrypted data to the cloud server to trigger the cloud server to determine whether the target cloud encrypted data is stored in the cloud server according to the hash value of the encrypted data, wherein the hash value of the target cloud encrypted data is the same as the hash value of the encrypted data;
[0009] When the target cloud encrypted data is stored in the cloud server, the user terminal interacts with the cloud server and performs ownership proof, the user terminal interacts with the cloud server to generate a secure file tag according to the hash value of the encrypted data, the private key and the public parameters, the user terminal generates a re-signing key and a verification key for integrity verification corresponding to the data to be uploaded and uploads the re-signing key to the cloud server;
[0010] The cloud server generates a data integrity certificate corresponding to each owner of the target cloud encrypted data, wherein the data integrity certificate is generated based on the re-signing key uploaded by the owner to the cloud server;
[0011] The client determines the number of owners corresponding to the target cloud encrypted data according to the number of the data integrity certificates, and verifies the integrity of the target cloud encrypted data according to the data integrity certificates and verification keys corresponding to the client.
[0012] Optionally, before the cloud server generates a data integrity certificate corresponding to each owner of the target cloud encrypted data, the method further includes:
[0013] When the target cloud encrypted data is not stored in the cloud server, the user terminal interacts with the cloud server to generate a secure file tag according to the hash value of the encrypted data, the private key and the public parameters, the user terminal generates a re-signing key, a verification key and an audit tag for integrity verification corresponding to the encrypted data, the user terminal uploads the encrypted data, the re-signing key and the audit tag to the cloud server, and the cloud server stores the received encrypted data as the target cloud encrypted data.
[0014] Optionally, the above-mentioned common parameters also include: a bilinear mapping function, an input group of the above-mentioned bilinear mapping function, a target group of the above-mentioned bilinear mapping function, an order of the exponential group and two target random elements, wherein the above-mentioned target random elements are random elements in the input group of the above-mentioned bilinear mapping function.
[0015] Optionally, the user terminal obtains the data to be uploaded, and encrypts the data to be uploaded to obtain encrypted data, including:
[0016] The user terminal obtains the data to be uploaded, encrypts the data to be uploaded using a preset convergent encryption algorithm, and obtains encrypted data corresponding to the data to be uploaded.
[0017] Optionally, the user terminal interacts with the cloud server and performs ownership proof, including:
[0018] The user terminal selects a random first bit string as cloud server ownership challenge information and sends it to the cloud server;
[0019] The cloud server selects a random second bit string as user ownership challenge information, calculates and obtains cloud server ownership proof information corresponding to the cloud server according to the cloud server ownership challenge information, the user ownership challenge information and the target cloud encrypted data, and sends the user ownership challenge information and the cloud server ownership proof information to the user terminal;
[0020] The user terminal calculates and obtains cloud server verification information according to the cloud server ownership challenge information, the encrypted data and the received user ownership challenge information, and determines whether the cloud server has ownership of the encrypted data according to the cloud server verification information and the cloud server ownership proof information;
[0021] When it is determined that the cloud server has ownership of the encrypted data, the user terminal calculates and obtains user ownership proof information corresponding to the user terminal according to the cloud server ownership challenge information, the user ownership challenge information and the encrypted data, and sends the user ownership proof information to the cloud server;
[0022] The cloud server calculates and obtains the user terminal verification information based on the cloud server ownership challenge information, the user ownership challenge information and the target cloud encrypted data, and determines whether the user terminal has ownership of the encrypted data based on the user terminal verification information and the user ownership proof information.
[0023] Optionally, when the cloud server verification information and the cloud server ownership certification information are the same, the cloud server has ownership of the encrypted data;
[0024] When the user terminal verification information and the user ownership certification information are the same, the user terminal has ownership of the encrypted data.
[0025] Optionally, the user terminal interacts with the cloud server to generate a secure file tag according to the hash value of the encrypted data, the private key and the public parameter, including:
[0026] The client sends the hash value of the encrypted data to the cloud server.
[0027] The cloud server calculates a signature value corresponding to the hash value of the encrypted data according to the hash value of the encrypted data, the private key and the public parameters, and uses the signature value as a security file label corresponding to the encrypted data.
[0028] Optionally, the cloud server generates a data integrity certificate corresponding to each owner of the target cloud encrypted data, including:
[0029] The cloud server obtains the audit tag corresponding to the target cloud encrypted data, and generates a general integrity certificate corresponding to the target cloud encrypted data according to the target cloud encrypted data and the audit tag;
[0030] The cloud server generates a data integrity certificate corresponding to each of the owners according to the general integrity certificate and the re-signing key corresponding to each of the owners;
[0031] The cloud server makes public the integrity proof set consisting of all the data integrity proofs.
[0032] A second aspect of the present invention provides a smart terminal, which includes a memory, a processor, and a deduplication and integrity verification program for cloud encrypted data stored in the memory and executable on the processor. When the deduplication and integrity verification program for cloud encrypted data is executed by the processor, the processor controls a cloud server and a user terminal to implement any one of the steps of the deduplication and integrity verification method for cloud encrypted data.
[0033] A third aspect of the present invention provides a computer-readable storage medium, on which a deduplication and integrity verification program for cloud encrypted data is stored. When the deduplication and integrity verification program for cloud encrypted data is executed by a processor, the cloud server and the user end are controlled to implement the steps of any one of the above-mentioned deduplication and integrity verification methods for cloud encrypted data.
[0034] As can be seen from the above, in the scheme of the present invention, the cloud server generates a private key and a public parameter, and discloses the above public parameter, wherein the above public parameter is a system parameter generated by the above cloud server and can be publicly obtained by the user end, and the above public parameter includes the public key of the above cloud server; the above user end obtains the data to be uploaded, encrypts the above data to be uploaded to obtain encrypted data, and sends the hash value of the above encrypted data to the above cloud server to trigger the above cloud server to determine whether the target cloud encrypted data is stored in the above cloud server according to the hash value of the above encrypted data, wherein the hash value of the above target cloud encrypted data is the same as the hash value of the above encrypted data; when the above target cloud encrypted data is stored in the above cloud server, the above user end interacts with the above cloud server and performs ownership proof, The above-mentioned user terminal interacts with the above-mentioned cloud server to generate a secure file tag according to the hash value of the above-mentioned encrypted data, the above-mentioned private key and the above-mentioned public parameters; the above-mentioned user terminal generates a re-signing key and a verification key for integrity verification corresponding to the above-mentioned data to be uploaded and uploads the above-mentioned re-signing key to the above-mentioned cloud server; the above-mentioned cloud server generates a data integrity certificate corresponding to each owner corresponding to the above-mentioned target cloud encrypted data, wherein the above-mentioned data integrity certificate is generated according to the re-signing key uploaded by the owner to the above-mentioned cloud server; the above-mentioned user terminal determines the number of owners corresponding to the above-mentioned target cloud encrypted data according to the number of the above-mentioned data integrity certificates, and verifies the integrity of the above-mentioned target cloud encrypted data according to the data integrity certificate and verification key corresponding to the above-mentioned user terminal.
[0035] Compared with the prior art, in the scheme of the present invention, the cloud server will not directly store all the encrypted data uploaded by the user, that is, the cloud server will not directly store a large amount of duplicate data, but first determine whether the cloud server has stored the same target cloud encrypted data as the encrypted data according to the hash value of the encrypted data uploaded by the user. If yes, the user does not need to upload the encrypted data to the cloud server. The cloud server only needs to store one copy of the corresponding target cloud encrypted data, which is beneficial to improve the utilization rate of the storage space of the cloud server. Further, the above cloud server also supports the function of integrity verification. For each owner who proves that he has ownership of the target cloud encrypted data, a data integrity certificate corresponding to the owner is generated respectively. On the one hand, the user end can determine the number of owners corresponding to the target cloud encrypted data at any time according to the number of data integrity certificates, and on the other hand, it can verify the integrity of the target cloud encrypted data according to the data integrity certificate and verification key corresponding to itself (i.e., the user end), which is beneficial to real-time verification of the data stored in the cloud server, thereby avoiding errors in the data use process caused by incomplete data, and is beneficial to improve the utilization rate of the storage space of the cloud server and the security of cloud data storage and use. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.
[0037] Figure 1 It is a flowchart of a method for deduplication and integrity verification of cloud encrypted data provided by an embodiment of the present invention;
[0038] Figure 2 It is a specific flow chart of a method for deduplication and integrity verification of cloud encrypted data provided by an embodiment of the present invention;
[0039] Figure 3 It is a structural diagram of a transparent cloud-based encrypted data deduplication and integrity verification system provided by an embodiment of the present invention;
[0040] Figure 4 It is a block diagram of the internal structure principle of an intelligent terminal provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0041] In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present invention. However, it should be clear to those skilled in the art that the present invention may be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present invention.
[0042] It should be understood that when used in this specification and the appended claims, the term "comprising" indicates the presence of described features, integers, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or groups thereof.
[0043] It should also be understood that the terms used in the present specification are only for the purpose of describing specific embodiments and are not intended to limit the present invention. As used in the present specification and the appended claims, unless the context clearly indicates otherwise, the singular forms "a", "an" and "the" are intended to include plural forms.
[0044] It should be further understood that the term "and / or" used in the present description and the appended claims refers to any and all possible combinations of one or more of the associated listed items, and includes these combinations.
[0045] As used in this specification and the appended claims, the term "if" may be interpreted as "when" or "upon" or "in response to determining" or "in response to being classified into," depending on the context. Similarly, the phrase "if it is determined" or "if classified into [described condition or event]" may be interpreted as meaning "upon determination" or "in response to determining" or "upon classification into [described condition or event]" or "in response to being classified into [described condition or event]," depending on the context.
[0046] The following is a clear and complete description of the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings of the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0047] In the following description, many specific details are set forth to facilitate a full understanding of the present invention, but the present invention may also be implemented in other ways different from those described herein, and those skilled in the art may make similar generalizations without violating the connotation of the present invention. Therefore, the present invention is not limited to the specific embodiments disclosed below.
[0048] With the development of science and technology, the speed of data generation and growth is constantly increasing. In order to save storage space, users (individuals or enterprises) will upload data to cloud servers for storage, that is, individuals or enterprises can outsource data to cloud servers. The data uploaded to the cloud server (i.e. outsourced data) may involve user privacy and need to be stored confidentially. Therefore, in order to further improve the security of data, users can encrypt the data and upload it to the cloud server. At the same time, the integrity of the data in the cloud server is also one of the issues that affect its security.
[0049] In the prior art, different users will encrypt their corresponding data and upload them to the cloud server. The cloud server will allocate corresponding storage space for each different user and store all the data uploaded by each user. The problem with the prior art is that different users may upload the same data, so a large amount of duplicate data may be stored in the cloud server, which is not conducive to improving the utilization rate of the storage space of the cloud server. At the same time, the cloud server in the prior art does not provide the function of data integrity verification. After uploading data to the cloud server, users cannot verify the integrity of the data. They can only directly download the data stored in the cloud server when they need to use it, but they cannot determine whether the data in the cloud server is complete, and cannot avoid errors in the data use process caused by incomplete data, which is not conducive to improving the security of cloud data storage and use. Therefore, deduplication and integrity audit of cloud encrypted data are of great significance to the security and efficiency of cloud storage systems.
[0050] In order to solve at least one of the above-mentioned multiple problems, in the solution of the present invention, the cloud server generates a private key and a public parameter, and discloses the above-mentioned public parameter, wherein the above-mentioned public parameter is a system parameter generated by the above-mentioned cloud server and can be publicly obtained by the user end, and the above-mentioned public parameter includes the public key of the above-mentioned cloud server; the above-mentioned user end obtains the data to be uploaded, encrypts the above-mentioned data to be uploaded to obtain encrypted data, and sends the hash value of the above-mentioned encrypted data to the above-mentioned cloud server to trigger the above-mentioned cloud server to determine whether the target cloud encrypted data is stored in the above-mentioned cloud server according to the hash value of the above-mentioned encrypted data, wherein the hash value of the above-mentioned target cloud encrypted data is the same as the hash value of the above-mentioned encrypted data; when the above-mentioned target cloud encrypted data is stored in the above-mentioned cloud server, the above-mentioned user end interacts with the above-mentioned cloud server and performs To perform ownership proof, the user terminal interacts with the cloud server to generate a secure file tag according to the hash value of the encrypted data, the private key and the public parameters, the user terminal generates a re-signing key and a verification key for integrity verification corresponding to the data to be uploaded and uploads the re-signing key to the cloud server; the cloud server generates a data integrity certificate corresponding to each owner of the target cloud encrypted data, wherein the data integrity certificate is generated according to the re-signing key uploaded by the owner to the cloud server; the user terminal determines the number of owners corresponding to the target cloud encrypted data according to the number of the data integrity certificates, and verifies the integrity of the target cloud encrypted data according to the data integrity certificate and verification key corresponding to the user terminal.
[0051] Compared with the prior art, in the scheme of the present invention, the cloud server will not directly store all the encrypted data uploaded by the user, that is, the cloud server will not directly store a large amount of duplicate data, but first determine whether the cloud server has stored the same target cloud encrypted data as the encrypted data according to the hash value of the encrypted data uploaded by the user. If yes, the user does not need to upload the encrypted data to the cloud server. The cloud server only needs to store one copy of the corresponding target cloud encrypted data, which is beneficial to improve the utilization rate of the storage space of the cloud server. Further, the above cloud server also supports the function of integrity verification. For each owner who proves that he has ownership of the target cloud encrypted data, a data integrity certificate corresponding to the owner is generated respectively. On the one hand, the user can determine the number of owners corresponding to the target cloud encrypted data at any time according to the number of data integrity certificates, and on the other hand, it can verify the integrity of the target cloud encrypted data according to the data integrity certificate and verification key corresponding to itself (i.e., the user), which is beneficial to real-time verification of the data stored in the cloud server, thereby avoiding errors in the data use process caused by incomplete data, and is beneficial to improve the utilization rate of the storage space of the cloud server and the security of cloud data storage and use.
[0052] At the same time, in the prior art, the same data uploaded by different users will be stored in the cloud server, and the cloud server will charge each user a corresponding fee. For example, if four users upload the same 1GB file respectively, it will occupy 4GB of space on the cloud server, and the cloud server will charge each of the four users a storage fee of 1GB.
[0053] In one application scenario, the cloud server can deduplicate the same files uploaded by different users by itself, that is, only store one copy of the cloud encrypted data, but it cannot achieve transparent deduplication, that is, the owner of the cloud encrypted data (that is, the corresponding user end) cannot know how many owners the cloud encrypted data is owned by. At this time, the user cannot know whether the storage cost of the corresponding cloud service can be reduced.
[0054] In the present invention, after the cloud server implements deduplication, the user end can also determine the number of owners corresponding to the target cloud encrypted data according to the number of data integrity certificates corresponding to the corresponding target cloud encrypted data. That is, the present invention can achieve transparent deduplication, and the owner of the cloud encrypted data (i.e. the corresponding user end) can know how many owners the cloud encrypted data is owned by, so that the cost to be shared can be determined according to the number of owners, which is conducive to improving the economic benefits obtained by users in the deduplication process. For example, if 4 users upload the same 1GB file respectively, it only needs to occupy 1GB of space on the cloud server after deduplication, and the storage cost corresponding to 1GB can be shared by the 4 users.
[0055] In another application scenario, the proof data provided by the cloud server for verifying data integrity is public and may be used by malicious users, resulting in file leakage, endangering file confidentiality and even infringing user privacy. In the present invention, the data integrity proof generated by the cloud server is for each owner, that is, the specific content of the data integrity proof corresponding to each owner is different. The owner needs to combine his own verification key and the above data integrity proof to verify the integrity of the corresponding target cloud encrypted data, which is conducive to further improving the security of data storage and verification process.
[0056] like Figure 1 As shown, an embodiment of the present invention provides a method for deduplication and integrity verification of cloud encrypted data. Specifically, the method includes the following steps:
[0057] Step S100, the cloud server generates a private key and public parameters, and publishes the public parameters, wherein the public parameters are system parameters generated by the cloud server and can be publicly obtained by the user end, and the public parameters include the public key of the cloud server.
[0058] Among them, the above-mentioned cloud server is a cloud server for storing uploaded data, and the cloud server can be used to store data uploaded by the user terminal. In this embodiment, the above-mentioned deduplication and integrity verification method for cloud encrypted data is used to deduplicate and verify the integrity (i.e., integrity audit) of the cloud encrypted data stored in the above-mentioned cloud server (in this embodiment, one target cloud encrypted data among all cloud encrypted data is taken as an example). It should be noted that, in this embodiment, the above-mentioned cloud server is communicatively connected to the above-mentioned user terminal. Specifically, in this embodiment, the cloud server generates a private key and public parameters, and discloses the public parameters to all user terminals that are communicatively connected to the above-mentioned cloud server.
[0059] The above private key is used in the process of data upload between the user end and the cloud server. The cloud server uses the private key to sign the hash value of the encrypted data to obtain a secure and publicly available security file label. The above public parameters are used to unify the parameters required by all user ends in calculations such as security file label generation and audit label generation to improve the security and efficiency of the calculation process.
[0060] In this embodiment, the above-mentioned common parameters also include: a bilinear mapping function, an input group of the above-mentioned bilinear mapping function, a target group of the above-mentioned bilinear mapping function, an order of the exponential group and two target random elements, wherein the above-mentioned target random elements are random elements in the input group of the above-mentioned bilinear mapping function.
[0061] In this embodiment, the cloud server generates a private key and public parameters according to the following specific steps. The cloud server performs bilinear mapping initialization to obtain parameters (p, q, e: G1×G1→G2, G1, G2, N=p*q), where p and q are large prime numbers obtained (for example, prime numbers with a length of 1024 bits), e: G1×G1→G2 is a preset bilinear mapping function, G1 is the input group of the bilinear function, G2 is the target group of the bilinear mapping, and N is the order of the exponential group. The cloud server randomly selects a parameter b that is coprime with (p-1)*(q-1) as the public key of the cloud server, and obtains the parameter d as the private key of the cloud server according to d*b=1mod((p-1)*(q-1)). The cloud server selects two random elements g and u from G1 (as auxiliary parameters for audit tag calculation). It should be noted that the cloud server randomly selects a parameter b that is coprime with (p-1)*(q-1) and calculates d*b=1mod((p-1)*(q-1)) which is the initialization process of the RSA common key cryptosystem, where b is the public key and d is the private key. In this embodiment, b can be used to verify the cloud server's signature on the hash value of the encrypted data, and d is the cloud server's signature private key. Among them, G1 is a multiplication cyclic group, and the selection of g and u can use time as a seed, or other selection methods, or no random selection is required, as long as g and u are two elements in G1.
[0062] Cloud server public hash function H2:{0,1} * →G1,H3:{0,1} * →{0,1} k , where H1 maps a bit string of arbitrary length into An element in It's Z N The group of modulo N congruence classes of all reversible elements in the domain. H2 maps a bit string of any length to an element in G1. H2 maps a bit string of any length to a bit string of k bits, where k is the bit length of the encryption key of the data uploaded to the cloud server (i.e., the encryption key corresponding to the encrypted data uploaded to the cloud server); the cloud server also publishes a pseudo-random number generation function The above hash function and pseudo-random number generation function are pre-set and public functions in the cloud server. The cloud server uses (e, G1, G2, N, g, u, b) as the public parameters corresponding to the cloud server and makes it public.
[0063] In step S200, the user terminal obtains the data to be uploaded, encrypts the data to be uploaded to obtain encrypted data, and sends the hash value of the encrypted data to the cloud server to trigger the cloud server to determine whether the target cloud encrypted data is stored in the cloud server according to the hash value of the encrypted data, wherein the hash value of the target cloud encrypted data is the same as the hash value of the encrypted data.
[0064] Among them, the above-mentioned user terminal can be any user terminal that is communicatively connected to the above-mentioned cloud server. In this embodiment, the user terminal encrypts the data and interacts with the cloud server to check for duplicates. Specifically, the user terminal obtains the local original data (i.e., plaintext data) that needs to be uploaded and uses it as the data to be uploaded, and then encrypts the above-mentioned data to be uploaded locally to obtain encrypted data (i.e., ciphertext data), and then uploads the hash value of the encrypted data to the cloud server, and the cloud server determines the file duplication based on the hash value of the encrypted data.
[0065] Specifically, when performing file duplication judgment, the cloud server determines whether, among all the cloud encrypted data stored by itself, there is a target cloud data whose hash value is the same as the hash value of the above encrypted data. If so, the content of the target cloud data is the same as the encrypted data, that is, the two are duplicated, and there is no need to store the above encrypted data again. Otherwise, it means that the encrypted data is newly uploaded data (that is, data uploaded for the first time), and there is no identical data stored in the cloud. The user end needs to upload the encrypted data, and the cloud server stores the encrypted data.
[0066] In this way, data deduplication can be achieved, and when checking for duplicates, only the corresponding hash value needs to be uploaded, without uploading the complete encrypted data, which is conducive to saving communication resources and improving deduplication efficiency.
[0067] The user terminal obtains the data to be uploaded, and encrypts the data to be uploaded to obtain encrypted data, including: the user terminal obtains the data to be uploaded, uses a preset convergent encryption algorithm to encrypt the data to be uploaded and obtains the encrypted data corresponding to the data to be uploaded. It should be noted that the convergent encryption algorithm is preset in this embodiment, and other encryption algorithms can also be set in actual use, which is not specifically limited here.
[0068] In this embodiment, if the data to be uploaded obtained by the user end U is F=m1||m2||…||m n , where m i (i is an integer from 1 to n) represents the i-th data block of F, that is, the data to be uploaded consists of n data blocks. The user end U first encrypts the data to be uploaded F to obtain the encrypted data C = c1||c2||…||c n , similarly, using c i(i is an integer from 1 to n) represents the i-th data block of the encrypted data C, and c i By m i Using the encryption key Ck i =H3(m i ) and a preset encryption algorithm (such as AES-256), the user end U calculates the hash value h=H1(C) of the encrypted data C and sends h to the cloud server for duplicate checking. The cloud server determines whether F has been stored in the cloud server based on the hash value h of the encrypted data. If F does not exist in the cloud server (that is, there is no target cloud storage data with the same hash value as h in the cloud server), the user uploads the encrypted data C and performs the corresponding data initialization upload operation. Otherwise, the user does not need to upload the encrypted data C again, and only needs to perform subsequent data upload operations.
[0069] Step S300, when the target cloud encrypted data is stored in the cloud server, the user terminal interacts with the cloud server and performs ownership proof, the user terminal interacts with the cloud server to generate a secure file tag according to the hash value of the encrypted data, the private key and the public parameters, the user terminal generates a re-signing key and a verification key for integrity verification corresponding to the data to be uploaded and uploads the re-signing key to the cloud server.
[0070] Specifically, in this embodiment, for duplicate files, the user end does not need to perform initial upload operations such as uploading the encrypted data, and can directly interact with the cloud server to perform subsequent data upload operations according to the existing target cloud encrypted data, that is, deduplication can be achieved, and the cloud server does not need to repeatedly store the same data. Among them, the subsequent data upload operations corresponding to the above-mentioned duplicate files include: the user end interacts with the cloud server to generate a publicly available secure file label and prove ownership; the user end generates a re-signature key and verification key for auditing and uploads the re-signature key.
[0071] In another application scenario, for files uploaded for the first time, the user terminal interacts with the cloud server to perform initial upload operations such as uploading encrypted data to ensure that the encrypted data and its related necessary data (such as security file tags) are stored in the cloud server. The above initial upload operation includes: the user terminal interacts with the cloud server to generate a publicly available security file tag corresponding to the encrypted data; the user terminal generates a re-signing key, an audit tag, and a verification key for auditing; the user terminal uploads the audit tag, the re-signing key, and the encrypted data to the cloud server.
[0072] Specifically, when the target cloud encrypted data is not stored in the cloud server, the user terminal interacts with the cloud server to generate a security file label according to the hash value of the encrypted data, the private key and the public parameters, the user terminal generates a re-signing key, a verification key and an audit label for integrity verification corresponding to the encrypted data, the user terminal uploads the encrypted data, the re-signing key and the audit label to the cloud server, and the cloud server stores the received encrypted data as the target cloud encrypted data.
[0073] The above audit represents data integrity verification, that is, verifying whether the cloud encrypted data stored on the cloud server is lost or damaged. The above signature key, audit tag and verification key are all used for auditing. It should be noted that after the above user uploads the encrypted data to the cloud server and stores it as the target cloud data, the user is recorded as the owner of the target cloud data. If there are other new users who are ready to upload the same encrypted data in the future, the new user will also be recorded as the owner of the target cloud data after the ownership proof is passed.
[0074] In one application scenario, the cloud server uses the hash value of the latest block data generated by the blockchain as a seed to generate challenge data; based on the challenge data, the cloud server uses the ciphertext data, the audit tag, and the re-signature key to generate a data integrity certificate and send it to the client; the client uses the verification key to verify the data integrity certificate; if the verification passes, it means that the data stored in the cloud by the client is complete. Among them, the generation of the audit tag depends on the encrypted data, and the re-signature key is randomly selected and does not depend on the plaintext data or ciphertext data; but the verification key depends on the selected re-signature key and the hash value of the plaintext data.
[0075] In this embodiment, when the encrypted data is uploaded for the first time, the cloud server uses its own private key to sign the hash value of the encrypted data; the cloud server sends the owner order and signature result of the user terminal to the user terminal; the user terminal calculates the hash value of the signature result and uses it as a public security file label; the user terminal divides the encrypted data into n data blocks, uses the hash value of the plaintext data (i.e., the data to be uploaded) as the signing key, and generates an audit label for each encrypted data block; the user terminal generates a re-signature key and a verification key and sends the re-signature key, the audit label and the verification key to the cloud server.
[0076] When the encrypted data is not uploaded for the first time, the cloud server uses its own private key to sign the hash value of the encrypted data; the cloud server sends the owner order and signature result of the user end to the user end; the user end calculates the hash value of the signature result and uses it as a public security file tag; the user end generates a re-signature key and a verification key and sends the re-signature key to the cloud server.
[0077] It should be noted that the owner of an encrypted data (or target cloud encrypted data, in this embodiment, the two have the same content, so they can be regarded as the same data) includes the user terminal that is currently uploading the encrypted data, and the user terminal that previously uploaded or attempted to upload and passed the ownership verification. The owner corresponding to each cloud encrypted data (including the target cloud encrypted data) can be recorded in the cloud server to generate data integrity proof for each user in a timely manner. Specifically, in this implementation, the above-mentioned user terminal interacts with the above-mentioned cloud server to generate a secure file label based on the hash value of the above-mentioned encrypted data, the above-mentioned private key and the above-mentioned public parameters, including: the above-mentioned user terminal sends the hash value of the above-mentioned encrypted data to the above-mentioned cloud server; the above-mentioned cloud server calculates the signature value corresponding to the hash value of the above-mentioned encrypted data based on the hash value of the above-mentioned encrypted data, the above-mentioned private key and the above-mentioned public parameters, and uses the above-mentioned signature value as the secure file label corresponding to the above-mentioned encrypted data.
[0078] In one application scenario, the specific form of the above-mentioned security document label is H1(H1(C) d mod N), where C is the encrypted data (that is, the encrypted data of the target cloud, the two have the same content), d is the private key of the cloud server, N is the public parameter, and H1 is the public hash function. The secure file tag is used to index the file when publicly verifying the number of file owners. All file owners identify the file based on the secure file tag in the public information.
[0079] The hash value of the encrypted data can be sent by the user end to the cloud server, or can be directly calculated by the cloud server based on the stored target cloud encrypted data, which is not specifically limited here. The cloud server also discloses the secure file tag to all user ends. The secure file tag can be used to index the file when publicly verifying the number of file owners. All file owners identify the file based on the secure file tag in the public information.
[0080] Furthermore, the user terminal interacts with the cloud server and performs ownership proof, including: the user terminal selects a random first bit string as cloud server ownership challenge information and sends it to the cloud server; the cloud server selects a random second bit string as user ownership challenge information, calculates and obtains cloud server ownership proof information corresponding to the cloud server based on the cloud server ownership challenge information, the user ownership challenge information and the target cloud encrypted data, and sends the user ownership challenge information and the cloud server ownership proof information to the user terminal; the user terminal calculates and obtains cloud server verification information based on the cloud server ownership challenge information, the encrypted data and the received user ownership challenge information, and calculates and obtains cloud server verification information based on the cloud server ownership challenge information, the encrypted data and the received user ownership challenge information The cloud server verification information and the cloud server ownership proof information determine whether the cloud server has ownership of the encrypted data; when it is determined that the cloud server has ownership of the encrypted data, the user terminal calculates and obtains the user ownership proof information corresponding to the user terminal based on the cloud server ownership challenge information, the user ownership challenge information and the encrypted data, and sends the user ownership proof information to the cloud server; the cloud server calculates and obtains the user terminal verification information based on the cloud server ownership challenge information, the user ownership challenge information and the target cloud encrypted data, and determines whether the user terminal has ownership of the encrypted data based on the user terminal verification information and the user ownership proof information.
[0081] It should be noted that the above ownership proof process actually includes the user end verifying whether the cloud server has the ownership of the encrypted data and the cloud server verifying whether the user end has the ownership of the target cloud encrypted data, that is, verifying whether the encrypted data owned by the user end and the target cloud encrypted data stored in the cloud server are indeed the same. In this embodiment, the example of the content of the two being the same is used for specific explanation. When the two are the same, the ownership of the encrypted data and the ownership of the target cloud encrypted data can be regarded as the same ownership.
[0082] Specifically, when the cloud server verification information and the cloud server ownership proof information are the same, the cloud server has ownership of the encrypted data; when the user terminal verification information and the user ownership proof information are the same, the user terminal has ownership of the encrypted data.
[0083] In step S400, the cloud server generates a data integrity certificate corresponding to each owner of the target cloud encrypted data, wherein the data integrity certificate is generated based on the re-signing key uploaded by the owner to the cloud server.
[0084] The above data integrity proof is the proof information generated by the cloud server to prove the data integrity. Specifically, for each owner of the same file, the cloud server generates a data integrity proof that can be uniquely verified by the user end, and makes the data integrity proof of all user ends public to all user ends, thereby avoiding dishonest behavior of the cloud server (i.e., the cloud server must truthfully state the number of file owners).
[0085] Furthermore, the cloud server generates a data integrity certificate corresponding to each owner of the target cloud encrypted data, including: the cloud server obtains the audit tag corresponding to the target cloud encrypted data, and generates a general integrity certificate corresponding to the target cloud encrypted data based on the target cloud encrypted data and the audit tag; the cloud server generates a data integrity certificate corresponding to each owner based on the general integrity certificate and the re-signing key corresponding to each owner; the cloud server makes public the integrity certificate set composed of all the data integrity certificates.
[0086] Among them, the above-mentioned audit tag only needs to be uploaded once by the first user end that uploads the encrypted data and stored in the cloud server, and the cloud server can directly obtain it during subsequent use.
[0087] In step S500, the client determines the number of owners corresponding to the target cloud encrypted data according to the number of the data integrity certificates, and verifies the integrity of the target cloud encrypted data according to the data integrity certificates and verification keys corresponding to the client.
[0088] In this embodiment, the user end can determine the number of owners corresponding to the above-mentioned target cloud encrypted data according to the number of data integrity certificates, thereby realizing transparent deduplication, that is, the user end can know how many users share the same file after deduplication. Then, the cost can be shared according to the number of shared users, which is conducive to improving the use efficiency. At the same time, the user end can also verify the integrity of the data stored in the cloud server according to its own corresponding data integrity certificate that can be uniquely verified by the user end and its own verification key.
[0089] Specifically, the user retrieves a set of data integrity certificates based on the public security file tags, and then verifies the number of file owners based on the number of data integrity certificates; retrieves the data integrity certificates based on the owner order determined during the data upload phase, and then uses the verification key to verify the file integrity.
[0090] Furthermore, when a file owner wants to delete the encrypted data corresponding to the file in the cloud server, the cloud server assigns a new order to each remaining owner and generates a data integrity certificate for the encrypted data in the next verification cycle.
[0091] In this embodiment, the specific operation steps corresponding to the above steps after the duplicate check are described in detail as follows. Specifically, if F does not exist in the cloud server, the user terminal U sends the encrypted data C to the cloud server, and the cloud server verifies whether the hash value h of the received encrypted data is equal to the hash value H1(C) of the encrypted data previously received and sent by the user terminal U, that is, the received encrypted data is verified to avoid errors during the initial data upload process. If the verification is successful, it means that the data has been uploaded successfully, and the cloud server calculates the signature value z=h of the hash value of the encrypted data d mod N, where mod stands for remainder. The cloud server sends the signature value z of the hash value of the encrypted data to the client. If the verification fails, that is, the data upload fails, the interaction between the client and the cloud server is terminated. After the client receives z, it compares whether h is equal to z. d mod N, verify the signature value returned by the cloud server. If the verification fails (i.e. h is not equal to z d modN), the interaction is terminated. Otherwise, the user terminal U calculates the secure file tag ID F =H1(z) and the audit tag signature key K = H3(F). The user terminal U will each encrypted data block c i Divide into s parts and calculate the cumulative sum of s sub-blocks in the same encrypted data block cs = c i,1 +c i,2 +…+c i,s , Audit Tags i =[H2(ID F ||i)*u cs ] k The user terminal U randomly selects Select the re-signing key (s, x) and calculate the verification key vk = g K*s , the user end U will (ID F ,{o1,…,o n},s,x) is sent to the cloud server, which verifies the secure file tag ID F Is it equal to H1(H1(C) d mod N), if the verification is successful, it means that the encrypted data is successfully uploaded to the cloud server, otherwise the encrypted data upload fails and the interaction is terminated.
[0092] If F already exists in the cloud server, that is, the cloud server already has a corresponding target cloud server, that is, the current user end is not the first user end to upload the encrypted data. At this time, proof of ownership is performed first, and the user end selects a random bit string R1 (i.e., the first bit string) as the cloud server ownership challenge information and sends it to the above cloud server. The cloud server selects a random bit string R2 (i.e., the second bit string) as the user ownership challenge information, and calculates the cloud server ownership proof information R=H2(R1||R2||C'), where C' represents the target cloud encrypted data corresponding to the encrypted data stored in the cloud server, and the || symbol is a connection symbol, representing the connection of the binary bit strings of the two data. In this embodiment, when performing ownership verification, it is necessary to verify that the cloud encrypted data C' is the same as the encrypted data C of the user end; the above first bit string and second bit string are random bit strings, there is no restriction, and the length is also random. The cloud server sends R2 and R to the user end, and the user end verifies whether the cloud server ownership proof information R is equal to H2(R1||R2||C), that is, the user end verifies whether the target cloud encrypted data C' on the cloud server is the same as the local encrypted data C. If the verification passes (that is, they are the same), the user end U calculates the user ownership proof information R′=H2(R2||R1||C) and sends R′ to the cloud server. If the verification fails, it means that the ownership verification has failed and the data upload operation is stopped. After receiving the user ownership proof information R′, the cloud server verifies whether R′ is equal to H2(R2||R1||C′), that is, the cloud server verifies whether the target cloud encrypted data C' on the cloud server is the same as the encrypted data C on the user end to determine whether the user end has ownership of the target cloud encrypted data C'. If the verification passes, the cloud server calculates the signature z=h of the hash value of the encrypted data d mod N and send z to the user, otherwise terminate the interaction. It should be noted that R represents the cloud's proof, the cloud proves to the user that it does have the encrypted data C. R′ is the user's proof, the user proves to the cloud that it does have the target cloud encrypted data C′. The user compares whether h is equal to z d mod N, verify the signature value returned by the cloud server. If the verification fails (i.e. h is not equal to z d mod N), the interaction is terminated. Otherwise, if the verification is successful, the user end U calculates the secure file tag ID F =H1(z), the user end U Select the re-signing key (s, x) and calculate the verification key vk = g K*s , where K = H3 (F) is the audit tag signature key; the user end U will (ID F ,s,x) is sent to the cloud server. The cloud server verifies whether the security file tag is equal to H1(H1(C) dmod N), if the verification is successful, the data outsourcing is successful, otherwise the data outsourcing fails and the interaction is terminated.
[0093] Furthermore, when generating the data integrity proof, the cloud server obtains the latest block from the preset blockchain and calculates its hash value bh, and then calculates the random challenge pole data {b1,…,bn}, where for i with a value from 1 to n, bi=T(i,bh), T represents a public pseudo-random number generation function; for each encrypted data block c i , the cloud server divides it into s parts and calculates the cumulative sum of s sub-blocks in the same encrypted data block cs = c i,1 +c i,2 +…+c i,s ; Then the cloud server calculates the general integrity proof RC and O, RC = b1*cs1+…+bn*cs n , For each owner (i.e., owner) U, the cloud server calculates the data integrity proof A and B corresponding to the user end, A = O s*x , B = x*RC. The cloud server stores the data integrity proofs of different owners of the same target cloud encrypted data in the same set and makes them public on the cloud server's publicly accessible website.
[0094] Furthermore, when the user terminal performs integrity verification, the user terminal U obtains the latest block from the preset blockchain and calculates its hash value bh, and then calculates the random challenge pole data {b1,…,bn}, where for i with a value of 1 to n, bi=T(i,bh), T represents a public pseudo-random number generation function; the user terminal U obtains the data integrity certificate from the publicly accessible website of the cloud server; the user terminal U obtains the number of data integrity certificates and uses it as the number of owners corresponding to the target cloud encrypted data (or encrypted data). The user terminal U calculates the verification auxiliary data C=Q z , where Q = H2(ID F ||1) b1 +…+H2(ID F ||n) bn ;The user end U calculates the verification data e(C*u B ,vk) and e(A,g) and determine whether the two are equal. If they are equal, it means that the integrity verification is passed, the file stored in the cloud server is complete and the number of file owners is correct; otherwise, the file is incomplete and the number of file owners is wrong. Where e represents the pre-disclosed bilinear mapping function.
[0095] Figure 2 1 is a specific flow chart of a method for deduplication and integrity verification of cloud encrypted data provided by an embodiment of the present invention, wherein user represents a user terminal and cloud represents a cloud server. Figure 2 As shown, the cloud server generates public parameters and keys (including private keys and public keys in public parameters). The user interacts with the cloud to perform duplicate detection, determine whether the user is the first user (i.e., the first user to upload encrypted data) or a subsequent user, and perform data upload operations based on the judgment results. The cloud then generates integrity certificates for each user, and the user can verify the integrity of the data stored in the cloud server based on the integrity certificates.
[0096] Figure 3 is a structural diagram of a transparent cloud-based encrypted data deduplication and integrity verification system provided by an embodiment of the present invention, such as Figure 3 As shown, the transparent cloud-based encrypted data deduplication and integrity verification system includes a cloud server and multiple client terminals. Figure 3 In the example, two user terminals (i.e., the first data uploader and the subsequent data uploader) are used for specific description. The cloud server is initialized first. When each user terminal uploads encrypted data, the cloud server first checks for duplicates. For the first data uploader, data is directly uploaded (including encrypted data). For the subsequent data uploader, ownership verification is first performed, and then data is uploaded (excluding encrypted data), so that data deduplication can be achieved. The cloud server also generates an integrity certificate to facilitate integrity verification by the user terminal. It should be noted that the implementation of deduplication of encrypted data in the cloud requires the user terminal to use a certain encryption method, and the user should be allowed to know the number of owners of the files stored in the cloud, and then all owners share the storage costs. At the same time, in order to prevent the file information used for public verification from being used by malicious users to endanger the confidentiality of the file and the privacy of the user, in this embodiment, the cloud server's key (such as the private key and public key of the cloud server) is added to the public file information to prevent the file privacy content from being obtained by other malicious users, and the number of file owners and the file integrity are verified at the same time through one integrity verification, which reduces the user's computing burden and helps the user to know the number of co-owners of the file in a timely manner. Specifically, in this embodiment, the number of file owners is indirectly verified through data integrity auditing, reducing the user's verification computing consumption; by adding the cloud's key to the public file information, malicious users are prevented from using public verification information to steal the file's private content, thereby improving the confidentiality of outsourced files (i.e., data uploaded to the cloud server).
[0097] In another application scenario, the above-mentioned deduplication and integrity verification method for cloud encrypted data can be performed by a deduplication and integrity verification system for cloud encrypted data. The above-mentioned deduplication and integrity verification system for cloud encrypted data includes: an initialization module for system public parameter generation and key generation; a duplication detection module for determining whether the file has been stored in the cloud; a data upload module for uploading ciphertext data and integrity audit auxiliary data; an ownership proof module for verifying the user's file ownership when the file already exists in the cloud; an integrity proof generation module for generating an independent data integrity proof for each owner of the file; an integrity verification module for verifying the integrity of the file and the number of owners; wherein the above-mentioned file is encrypted data.
[0098] Specifically, the user end uses a convergent encryption algorithm to encrypt the encrypted data, then calculates the hash value of the encrypted data and sends the hash value to the cloud server. The duplicate checking module in the cloud server searches for files inside the cloud server based on the hash value and feeds back the query results to the user end.
[0099] The above-mentioned data upload module is specifically used for the user end to interact with the cloud server to generate a publicly available security file label, and then upload the encrypted data, audit label, and re-signature key (files uploaded for the first time); upload the re-signature key (duplicate files). Specifically, the data upload module generates a public security file label and performs different data upload operations depending on whether the file is repeated. The user interacts with the cloud to generate a public security file label for the file; for non-duplicate files, the user uploads the encrypted data, audit label and re-signature key; for duplicate files, the user uploads the re-signature key; wherein when calculating the audit label, the encrypted data is first divided into n data blocks, and then the hash value of the plaintext data (i.e., the data to be uploaded) is used as the signature key to generate an audit label for each encrypted data block.
[0100] The above-mentioned ownership proof module is used to control the cloud server to generate random challenge information and send it to the user end; control the user end to use encrypted data to generate ownership proof data according to the challenge information and send it to the cloud server; control the cloud server to verify the ownership proof of the user end.
[0101] The above integrity proof module is used to control the cloud server to generate a general integrity proof using ciphertext data and audit tags, and then use each owner's re-signing key to generate a different integrity proof for each owner; the control cloud server will disclose the integrity proofs of all owners to the user end in a set.
[0102] The integrity verification module is used to control the user end to use the verification key to verify the integrity of the data stored in the cloud server, and determine the number of file owners based on the number of data integrity certificates.
[0103] Specifically, in this embodiment, the specific functions of the above-mentioned deduplication and integrity verification system for cloud encrypted data and its various modules can refer to the corresponding description in the above-mentioned deduplication and integrity verification method for cloud encrypted data, and will not be repeated here.
[0104] It should be noted that the division method of the various modules of the above-mentioned deduplication and integrity verification system for cloud encrypted data is not unique and is not specifically limited here.
[0105] As can be seen from the above, in the scheme of the present invention, the cloud server will not directly upload all the encrypted data of the user end, that is, the cloud server will not directly store a large amount of duplicate data, but first determine whether the cloud server has stored the same target cloud encrypted data as the encrypted data according to the hash value of the encrypted data uploaded by the user end. If yes, the user end does not need to upload the encrypted data to the cloud server. The cloud server only needs to store a corresponding target cloud encrypted data, which is conducive to improving the utilization rate of the storage space of the cloud server. Further, the above cloud server also supports the function of integrity verification. For each owner who proves that he has ownership of the target cloud encrypted data, a data integrity certificate corresponding to the owner is generated respectively. On the one hand, the user end can determine the number of owners corresponding to the target cloud encrypted data at any time according to the number of data integrity certificates, and on the other hand, it can verify the integrity of the target cloud encrypted data according to the data integrity certificate and verification key corresponding to itself (i.e., the user end), which is conducive to real-time verification of the data stored in the cloud server, thereby avoiding errors in the data use process caused by incomplete data, and is conducive to improving the utilization rate of the storage space of the cloud server and the security of cloud data storage and use.
[0106] Based on the above embodiments, the present invention further provides an intelligent terminal, whose principle block diagram can be shown as follows: Figure 4 As shown. The above-mentioned smart terminal includes a processor and a memory. The memory of the smart terminal includes a deduplication and integrity verification program for cloud encrypted data, and the memory provides an environment for the operation of the deduplication and integrity verification program for cloud encrypted data. When the deduplication and integrity verification program for cloud encrypted data is executed by the processor, the steps of any of the above-mentioned deduplication and integrity verification methods for cloud encrypted data are implemented. It should be noted that the above-mentioned smart terminal may also include other functional modules or units, which are not specifically limited here.
[0107] Those skilled in the art will understand that Figure 4The principle block diagram shown in the figure is only a block diagram of a partial structure related to the solution of the present invention, and does not constitute a limitation on the smart terminal to which the solution of the present invention is applied. Specifically, the smart terminal may include more or fewer components than those shown in the figure, or combine certain components, or have a different component arrangement.
[0108] An embodiment of the present invention also provides a computer-readable storage medium, on which a deduplication and integrity verification program for cloud encrypted data is stored. When the deduplication and integrity verification program for cloud encrypted data is executed by a processor, the steps of any one of the deduplication and integrity verification methods for cloud encrypted data provided in the embodiment of the present invention are implemented.
[0109] It should be understood that the serial numbers of the steps in the above embodiments do not imply a sequence of execution, and the execution sequence of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present invention.
[0110] Those skilled in the art can clearly understand that, for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In practical applications, the above-mentioned function allocation can be completed by different functional units and modules as needed, that is, the internal structure of the above-mentioned system can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated in a processing unit, or each unit can exist physically separately, or two or more units can be integrated in one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of the present invention. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, which will not be repeated here.
[0111] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0112] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present invention.
[0113] In the embodiments provided by the present invention, it should be understood that the disclosed system / intelligent terminal and method can be implemented in other ways. For example, the system / intelligent terminal embodiments described above are only schematic, for example, the division of the above modules or units is only a logical function division, and in actual implementation, other division methods can be used, for example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed.
[0114] If the above-mentioned integrated module / unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on such an understanding, the present invention implements all or part of the processes in the above-mentioned embodiment method, and can also be completed by instructing the relevant hardware through a computer program. The above-mentioned computer program can be stored in a computer-readable storage medium, and the computer program can implement the steps of the above-mentioned various method embodiments when executed by the processor. Among them, the above-mentioned computer program includes computer program code, and the above-mentioned computer program code can be in source code form, object code form, executable file or some intermediate form. The above-mentioned computer-readable medium may include: any entity or device capable of carrying the above-mentioned computer program code, recording medium, U disk, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), electric carrier signal, telecommunication signal and software distribution medium. It should be noted that the content contained in the above-mentioned computer-readable storage medium can be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction.
[0115] The embodiments described above are only used to illustrate the technical solutions of the present invention, rather than to limit the same. Although the present invention has been described in detail with reference to the aforementioned embodiments, it should be understood by those skilled in the art that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features therein may be replaced by equivalents. However, these modifications or replacements do not deviate from the spirit and scope of the technical solutions of the embodiments of the present invention, and should be included in the protection scope of the present invention.
Claims
1. A method for deduplication and integrity verification of cloud encrypted data, characterized in that: The method comprises: The cloud server generates a private key and a public parameter, and publishes the public parameter, wherein the public parameter is a system parameter generated by the cloud server and can be publicly obtained by the user terminal, and the public parameter includes the public key of the cloud server; The user end obtains the data to be uploaded, encrypts the data to be uploaded to obtain encrypted data, and sends a hash value of the encrypted data to the cloud server to trigger the cloud server to determine whether the cloud server stores target cloud encrypted data according to the hash value of the encrypted data, wherein the hash value of the target cloud encrypted data is the same as the hash value of the encrypted data; When the target cloud encrypted data is stored in the cloud server, the user terminal interacts with the cloud server and performs ownership proof, the user terminal interacts with the cloud server to generate a secure file tag according to the hash value of the encrypted data, the private key and the public parameter, the user terminal generates a re-signing key and a verification key for integrity verification corresponding to the data to be uploaded and uploads the re-signing key to the cloud server; The cloud server generates a data integrity certificate corresponding to each owner of the target cloud encrypted data, wherein the data integrity certificate is generated based on a re-signing key uploaded by the owner to the cloud server; The client determines the number of owners corresponding to the target cloud encrypted data according to the number of the data integrity certificates, and verifies the integrity of the target cloud encrypted data according to the data integrity certificates and verification keys corresponding to the client.
2. The method for deduplication and integrity verification of cloud encrypted data according to claim 1, characterized in that: Before the cloud server generates a data integrity certificate corresponding to each owner of the target cloud encrypted data, the method further includes: When the target cloud encrypted data is not stored in the cloud server, the user terminal interacts with the cloud server to generate a secure file tag according to the hash value of the encrypted data, the private key and the public parameters, the user terminal generates a re-signing key, a verification key and an audit tag for integrity verification corresponding to the encrypted data, the user terminal uploads the encrypted data, the re-signing key and the audit tag to the cloud server, and the cloud server stores the received encrypted data as the target cloud encrypted data.
3. The method for deduplication and integrity verification of cloud encrypted data according to claim 1, characterized in that: The common parameters also include: a bilinear mapping function, an input group of the bilinear mapping function, a target group of the bilinear mapping function, an order of an exponential group, and two target random elements, wherein the target random elements are random elements in the input group of the bilinear mapping function.
4. The method for deduplication and integrity verification of cloud encrypted data according to claim 1, characterized in that: The user end obtains the data to be uploaded, and encrypts the data to be uploaded to obtain encrypted data, including: The user terminal obtains the data to be uploaded, encrypts the data to be uploaded using a preset convergent encryption algorithm, and obtains encrypted data corresponding to the data to be uploaded.
5. The method for deduplication and integrity verification of cloud encrypted data according to claim 1, characterized in that: The user terminal interacts with the cloud server and performs ownership certification, including: The user terminal selects a random first bit string as cloud server ownership challenge information and sends it to the cloud server; The cloud server selects a random second bit string as user ownership challenge information, calculates and obtains cloud server ownership proof information corresponding to the cloud server according to the cloud server ownership challenge information, the user ownership challenge information and the target cloud encrypted data, and sends the user ownership challenge information and the cloud server ownership proof information to the user terminal; The user terminal calculates and obtains cloud server verification information according to the cloud server ownership challenge information, the encrypted data, and the received user ownership challenge information, and determines whether the cloud server has ownership of the encrypted data according to the cloud server verification information and the cloud server ownership proof information; When it is determined that the cloud server has the ownership of the encrypted data, the user terminal calculates and obtains the user ownership proof information corresponding to the user terminal according to the cloud server ownership challenge information, the user ownership challenge information and the encrypted data, and sends the user ownership proof information to the cloud server; The cloud server calculates and obtains the user terminal verification information according to the cloud server ownership challenge information, the user ownership challenge information and the target cloud encrypted data, and determines whether the user terminal has ownership of the encrypted data according to the user terminal verification information and the user ownership proof information.
6. The method for deduplication and integrity verification of cloud encrypted data according to claim 5, characterized in that: When the cloud server verification information and the cloud server ownership certification information are the same, the cloud server has ownership of the encrypted data; When the user terminal verification information and the user ownership certification information are the same, the user terminal has the ownership of the encrypted data.
7. The method for deduplication and integrity verification of cloud encrypted data according to claim 1, characterized in that: The user terminal interacts with the cloud server to generate a secure file tag according to the hash value of the encrypted data, the private key and the public parameter, including: The user terminal sends the hash value of the encrypted data to the cloud server; The cloud server calculates and obtains a signature value corresponding to the hash value of the encrypted data according to the hash value of the encrypted data, the private key and the public parameters, and uses the signature value as a security file label corresponding to the encrypted data.
8. The method for deduplication and integrity verification of cloud encrypted data according to claim 1, characterized in that: The cloud server generates a data integrity certificate corresponding to each owner of the target cloud encrypted data, including: The cloud server obtains the audit tag corresponding to the target cloud encrypted data, and generates a general integrity certificate corresponding to the target cloud encrypted data according to the target cloud encrypted data and the audit tag; The cloud server generates a data integrity certificate corresponding to each owner according to the general integrity certificate and the re-signing key corresponding to each owner; The cloud server makes public the integrity proof set consisting of all the data integrity proofs.
9. An intelligent terminal, characterized in that: The smart terminal includes a memory, a processor, and a deduplication and integrity verification program for cloud encrypted data stored in the memory and executable on the processor. When the deduplication and integrity verification program for cloud encrypted data is executed by the processor, the cloud server and the user end are controlled to implement the steps of the deduplication and integrity verification method for cloud encrypted data as described in any one of claims 1-8.
10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a deduplication and integrity verification program for cloud encrypted data. When the deduplication and integrity verification program for cloud encrypted data is executed by the processor, it controls the cloud server and the user end to implement the steps of the deduplication and integrity verification method for cloud encrypted data as described in any one of claims 1-8.
Citation Information
Patent Citations
Outsourcing data deduplication cloud storage method supporting privacy and integrity protection
CN110677487A
Cloud data integrity auditing method and device and computer readable storage medium
CN111611625A