Cloud server-based plaintext data storage method and data access method

By introducing re-encryption vector generation to reconstruct linear shares in cloud servers and incrementally calculating and reconstructing ciphertext components and policy components, the problems of storage redundancy and high re-encryption overhead in traditional cloud data access control are solved, achieving efficient permission management and computational optimization.

CN121056245BActive Publication Date: 2026-03-17ZHEJIANG SCI-TECH UNIV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511589438.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-11-03
Publication Date
2026-03-17
Estimated Expiration
2045-11-03

AI Technical Summary

Technical Problem

Traditional attribute-based cloud data access control schemes suffer from high storage redundancy, high key update costs, and high re-encryption overhead when facing dynamic permission updates, making it difficult to meet the efficient management needs of complex cloud environments.

Method used

By introducing a re-encryption vector to generate reconstructed linear shares, and incrementally calculating the reconstructed ciphertext component and the reconstruction strategy component, multiple duplicate ciphertexts can be deduplicated, avoiding re-encryption after full decryption and reducing computational overhead.

Benefits of technology

It reduces the computational overhead of the re-encryption process, lowers storage resource consumption, optimizes the permission update process, and adapts to cross-organizational data sharing and dynamic user group management scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121056245B_ABST
    Figure CN121056245B_ABST
Patent Text Reader

Abstract

This application proposes a method for storing plaintext data on a cloud server and a data access method, including the following steps: generating an access policy based on attribute information; using the access policy to perform attribute encryption on the plaintext data to obtain ciphertext data; uploading the ciphertext data to the cloud server; obtaining all duplicate ciphertext data corresponding to the same plaintext data in the cloud server, and integrating and reconstructing the access policy of each duplicate ciphertext data to obtain a reconstructed access policy; obtaining any duplicate ciphertext data as saved ciphertext data, and using the reconstructed access policy to re-encrypt the saved ciphertext data to obtain the plaintext saving result. This scheme introduces a re-encryption vector to generate a reconstructed linear share, and incrementally calculates the reconstructed ciphertext component and the reconstructed policy component to deduplicatize multiple duplicate ciphertexts, thereby achieving the goal of not needing to fully decrypt and re-encrypt the duplicate ciphertexts, significantly reducing the computational overhead of the re-encryption process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data encryption, and in particular to a method for storing and accessing plaintext data based on a cloud server. Background Technology

[0002] With the widespread adoption of cloud computing technology, massive amounts of data from enterprises and individual users are rapidly migrating to the cloud, making cloud data a core asset in the digital economy era. In this context, cloud data access control directly determines data security boundaries, becoming a crucial link in ensuring data is not accessed, tampered with, or leaked without authorization. Currently, mainstream cloud data access control technologies are mainly divided into three categories: role-based access control, identity-based access control, and attribute-based access control. Role-based access control relies on fixed roles to assign permissions, making it difficult to adapt to scenarios with dynamically changing user attributes. Identity-based access control only considers user identity and cannot take into account the characteristics of the data itself and differences in the access environment. Attribute-based access control, on the other hand, can integrate multi-dimensional information such as user identity, department, and position (subject attributes), data type, sensitivity level, and storage location (object attributes), and access time, terminal IP, and network environment (environment attributes) to make permission decisions. It demonstrates significant advantages in complex cloud environments, and is particularly suitable for scenarios such as cross-organizational data sharing, dynamic user group management, and multi-device IoT access, gradually becoming the preferred solution for large-scale cloud data access control.

[0003] However, in practical applications, the security and efficiency of current attribute-based cloud data access control systems heavily rely on encryption mechanisms for permission updates. Traditional solutions often employ an "attribute-based encryption + simple key distribution" model, which exposes three major shortcomings when dealing with dynamic permission update requirements, severely restricting the cost control and availability of cloud services. First, data redundancy storage is a significant issue: when the same data needs to be adapted to different permissions, traditional solutions require multiple encryptions and independent copies based on the attribute keys corresponding to different permissions. For example, when 10GB of government data is accessible to users with three types of permissions, three 10GB encrypted copies need to be stored, resulting in an actual storage volume of 30GB and a redundancy rate of up to 200%. In enterprise cloud environments, if data needs to adapt to dozens or even hundreds of permission combinations, storage resource consumption increases linearly, significantly driving up cloud service costs. Second, key update costs are too high: when user attributes change, the cloud server needs to regenerate a complete attribute key and distribute it to all users. This process not only consumes a large amount of computing resources but also requires multiple bidirectional communications for authentication, further exacerbating permission update delays and impacting user experience. Third, data re-encryption is extremely costly: if the data sensitivity level is upgraded or the access policy is adjusted, the existing solution needs to fully decrypt all the encrypted data in the storage and then re-encrypt it. In the case of massive data, the re-encryption process often lasts for hours or even days, which seriously occupies the computing resources of the cloud platform, resulting in a significant decrease in service availability and failing to meet the business's real-time requirements.

[0004] In summary, with the continuous growth of cloud data and the increasing frequency of dynamic changes in user permissions, traditional solutions are no longer able to meet the efficient management needs of complex cloud environments. There is an urgent need for a permission change technology that can reduce storage redundancy, optimize key update processes, and reduce re-encryption overhead in order to balance data security and service efficiency. Summary of the Invention

[0005] This application provides a method for storing plaintext data on a cloud server and a data access method. By introducing a re-encryption vector to generate a reconstructed linear share, and incrementally calculating a reconstructed ciphertext component and a reconstructed strategy component to deduplicat multiple duplicate ciphertexts, it achieves the goal of eliminating the need to fully decrypt and re-encrypt duplicate ciphertexts, thereby significantly reducing the computational overhead of the re-encryption process.

[0006] In a first aspect, embodiments of this application provide a plaintext data storage method based on a cloud server, the method comprising:

[0007] Multiple encrypted data from multiple data owners are stored in a cloud server. The encrypted data is obtained by encrypting plaintext data with public parameters, access policies and master keys. The encrypted data is composed of access policies, encrypted components and policy components.

[0008] In the cloud server, duplicate detection is performed on multiple ciphertext data, and the ciphertext data that comes from the same plaintext data is identified as duplicate ciphertext data.

[0009] The access strategy for each repeated ciphertext data is integrated and reconstructed to obtain the reconstructed access strategy.

[0010] Obtain any duplicate ciphertext data as the saved ciphertext data, use the reconstruction access strategy to re-encrypt the saved ciphertext data to obtain the plaintext saved result, save the plaintext saved result in the cloud server, and delete all duplicate ciphertext data corresponding to the plaintext saved result in the cloud server.

[0011] Secondly, embodiments of this application provide a method for accessing encrypted data in a cloud server, including:

[0012] Obtain all attribute information of the accessing user to construct a user attribute set, and construct an attribute binding component for each attribute information in the user attribute set to form an attribute binding component collection;

[0013] The key generation center generates corresponding user private keys based on the attribute binding set, and uses the user private keys to access the encrypted data stored in the cloud server.

[0014] Thirdly, embodiments of this application provide an apparatus for storing plaintext data on a cloud server, comprising:

[0015] The encryption module is used to acquire multiple ciphertext data from multiple data owners and store them in the cloud server. The ciphertext data is obtained by encrypting plaintext data with public parameters, access policies and master keys. The ciphertext data is composed of access policies, ciphertext components and policy components.

[0016] The duplicate detection module is used to perform duplicate detection on multiple ciphertext data in the cloud server, and to identify ciphertext data that originates from the same plaintext data as duplicate ciphertext data;

[0017] The reconstruction module is used to integrate and reconstruct the access strategy for each duplicate ciphertext data to obtain a reconstructed access strategy.

[0018] The re-encryption module is used to obtain any duplicate ciphertext data as the saved ciphertext data, re-encrypt the saved ciphertext data using the reconstruction access strategy to obtain the plaintext saved result, save the plaintext saved result in the cloud server, and delete all duplicate ciphertext data corresponding to the plaintext saved result in the cloud server.

[0019] Fourthly, embodiments of this application provide an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to execute a plaintext data storage method based on a cloud server or a method for accessing encrypted data in a cloud server.

[0020] Fifthly, embodiments of this application provide a readable storage medium storing a computer program, which, when executed by a processor, implements a method for storing plaintext data on a cloud server or a method for accessing encrypted data on a cloud server.

[0021] The main contributions and innovations of this invention are as follows:

[0022] This solution encrypts plaintext data by generating access policies based on attribute information. It can integrate multiple user identities, data types, and other dimensions for permission decisions, adapting to complex scenarios such as cross-organizational data sharing, dynamic user group management, and multi-device access in the Internet of Things. The solution sets a deduplication flag in the ciphertext component to identify duplicate ciphertext data, avoiding redundant storage problems caused by the inability to identify duplicate data. This lays the foundation for subsequent access policy integration and single-copy storage, reducing initial storage waste. Furthermore, the solution introduces a re-encryption vector to generate reconstructed linear shares and incrementally calculates the reconstructed ciphertext component and reconstructed policy component to deduplicat multiple duplicate ciphertexts. This eliminates the need for full decryption and re-encryption of duplicate ciphertexts, significantly reducing the computational overhead of the re-encryption process.

[0023] Details of one or more embodiments of this application are set forth in the following drawings and description to make other features, objects and advantages of this application more readily apparent. Attached Figure Description

[0024] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:

[0025] Figure 1 This is a schematic diagram of a method for storing plaintext data on a cloud server according to an embodiment of this application;

[0026] Figure 2 This is a structural block diagram of an apparatus for storing plaintext data on a cloud server according to an embodiment of this application;

[0027] Figure 3 This is a schematic diagram of the hardware structure of an electronic device according to an embodiment of this application. Detailed Implementation

[0028] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numerals in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with one or more embodiments of this specification. Rather, they are merely examples of apparatuses and methods consistent with some aspects of one or more embodiments of this specification as detailed in the appended claims.

[0029] It should be noted that the steps of the corresponding methods are not necessarily performed in the order shown and described in this specification in other embodiments. In some other embodiments, the methods may include more or fewer steps than described in this specification. Furthermore, a single step described in this specification may be broken down into multiple steps in other embodiments; and multiple steps described in this specification may be combined into a single step in other embodiments.

[0030] Example 1

[0031] This application provides a plaintext data storage method based on a cloud server. By introducing a re-encryption vector to generate reconstructed linear shares, and incrementally calculating reconstructed ciphertext components and reconstructed strategy components, multiple duplicate ciphertexts are deduplicated. This eliminates the need for full decryption and re-encryption of duplicate ciphertexts, significantly reducing the computational overhead of the re-encryption process. Specifically, refer to... Figure 1 The method includes:

[0032] Multiple encrypted data from multiple data owners are stored in a cloud server. The encrypted data is obtained by encrypting plaintext data with public parameters, access policies and master keys. The encrypted data is composed of access policies, encrypted components and policy components.

[0033] In the cloud server, duplicate detection is performed on multiple ciphertext data, and the ciphertext data that comes from the same plaintext data is identified as duplicate ciphertext data.

[0034] The access strategy for each repeated ciphertext data is integrated and reconstructed to obtain the reconstructed access strategy.

[0035] Obtain any duplicate ciphertext data as the saved ciphertext data, use the reconstruction access strategy to re-encrypt the saved ciphertext data to obtain the plaintext saved result, save the plaintext saved result in the cloud server, and delete all duplicate ciphertext data corresponding to the plaintext saved result in the cloud server.

[0036] In some specific embodiments, this scheme uses a key generation center (KGC) to generate public parameters and a master key based on the number of attribute information. It uses the public parameters and access policies to generate encrypted ciphertext for the corresponding plaintext data, uses the public parameters and access policies to encrypt the corresponding plaintext data to obtain ciphertext data, and allocates a private key to the corresponding user based on the user's attribute information based on the public parameters and the master key.

[0037] Specifically, the number of attribute information is U, and the key generation center generates a prime-order cyclic group G. Let g be the generator of the prime-order cyclic group G, and then select a bilinear mapping. and U random elements within the prime-order cyclic group G. Randomly select secret values ​​from a finite field and collision-resistant hash functions The public parameters are then expressed as:

[0038]

[0039] The master key is represented as:

[0040]

[0041] In this scheme, attribute information serves as the basis for determining user private key allocation and encrypted data access permissions. Attribute information covers various user characteristics, such as department, job level, and project participation. Each attribute corresponds to a specific element in a prime-order cyclic group G. Through complex calculations using these elements and public parameters, a private key precisely matching the user's attribute is generated, thereby achieving effective control over cloud data access permissions. For example, if a company includes three positions: General Manager, Team Leader, and Team Member, then General Manager, Team Leader, and Team Member each have different attribute information, resulting in a total of three attribute information.

[0042] Specifically, the key generation center generates a private key for each user and sends the generated private key to the corresponding user through a secure channel.

[0043] In some specific embodiments, in the field of data encryption applications, the data owner usually encrypts the plaintext data and uploads it to the cloud server. Therefore, this solution generates access policies based on attribute information to control access permissions for encrypted data. In other words, only users whose attribute information is exactly the same as that included in the access policy can access the encrypted data.

[0044] In some embodiments, the ciphertext data comprises an access policy, a ciphertext component, and a policy component. Specifically, a plaintext secret value is obtained by hashing the plaintext data and the data owner's access policy; a ciphertext component is constructed based on this plaintext secret value. A secret sharing vector is obtained by combining the plaintext secret value with n-1 random numbers from pre-acquired public parameters. A linear share is obtained based on the secret sharing vector and the attribute matrix in the access policy. A policy component is constructed based on the linear share and a pre-acquired blinding factor. The public parameters are generated based on the number of attribute information items. The ciphertext component stores the encrypted plaintext data. The policy component includes two policy parameters corresponding to each row of the attribute matrix for verifying the attribute information.

[0045] Specifically, this scheme uses a collision-resistant hash function to calculate the plaintext secret value from the plaintext data. Random numbers are obtained from a finite field, and n is a preset value. The formula is as follows:

[0046]

[0047]

[0048] Where s is the plaintext secret value, is the collision-resistant hash function, and m is the plaintext data. It is a secret shared vector. To from a finite field The n-1 random numbers are selected from the given information, where n is the number of rows in the attribute matrix in this scheme.

[0049] Specifically, the formula for calculating the linear share is as follows:

[0050]

[0051] in, For the i-th row of the attribute matrix, For the corresponding secret shared vector, This represents the linear share of the i-th row of the corresponding attribute matrix.

[0052] Specifically, the blinding factor is obtained from a finite field, and the number of blinding factors is the same as the number of rows in the matrix.

[0053] Furthermore, the ciphertext component includes a first ciphertext component, a second ciphertext component, and a third ciphertext component, and the policy component includes a first policy component and a second policy component, then the ciphertext data... Represented as ,in, For access policies, As the first ciphertext component, For the second ciphertext component, For the third ciphertext component, As the first strategy component, This is the second ciphertext component.

[0054] Specifically, the formula for the first ciphertext component is expressed as follows:

[0055]

[0056] Where m represents plaintext data. Provided by public parameters, s is the plaintext secret value.

[0057] Specifically, the formula for the second ciphertext component is expressed as follows:

[0058]

[0059] in, Provided by public parameters, s is the plaintext secret value.

[0060] Specifically, the formula for the third ciphertext component is expressed as follows:

[0061]

[0062] in, , Provided by the public parameters and the master key, where s is the plaintext secret value. This represents the mapping result of the mapping function on the i-th row of the attribute matrix. This represents the total number of rows in the attribute matrix. This is a collision-resistant hash function.

[0063] Specifically, the formula for the first strategy parameter is expressed as:

[0064] ,

[0065] in, Provided by publicly available parameters, This represents the mapping result of the mapping function on the i-th row of the attribute matrix. For corresponding The random elements are provided by public parameters. This represents the linear share corresponding to the i-th row of the attribute matrix.

[0066] Specifically, the formula for the second strategy parameter is expressed as follows:

[0067] ,

[0068] in, Provided by publicly available parameters, This represents the linear share corresponding to the i-th row of the attribute matrix.

[0069] In some embodiments, a duplicate detection parameter is calculated based on the deduplication identification parameter in the ciphertext component. If the duplicate detection parameters of two ciphertext data are the same, then the two ciphertext data come from the same plaintext data. Specifically, the second ciphertext component is used as the deduplication identification parameter.

[0070] For example, the cloud server receives two encrypted data. and encrypted data for encrypted data for Then determine the duplicate detection parameters. If the condition is met, then the encrypted data is valid. and This refers to duplicate ciphertext data that is identical to the plaintext data.

[0071] Furthermore, the access strategy includes an attribute matrix and a mapping function. The mapping function maps each row in the attribute matrix to corresponding attribute information. Therefore, an access strategy can be determined by the attribute matrix and the mapping function to limit access permissions to the encrypted data. The access strategy is expressed as follows: M is the access matrix. This is a mapping function.

[0072] For example, the attribute matrix M is OK Column matrix, mapping function This is used to map the i-th row of the attribute matrix to the corresponding attribute information. The corresponding ciphertext data can only be decrypted when the user's attribute information meets the access policy.

[0073] Specifically, in the step of integrating and reconstructing the access strategy for each duplicate encrypted data, the attribute matrix of each access strategy is decomposed into index blocks and content blocks. The index blocks of each access strategy form the first column of the reconstructed attribute matrix. Each content block is placed in the row of the column corresponding to the index block in the reconstructed attribute matrix, and the interval between the index block and the content block is L-1, where L is the total number of rows in the reconstructed attribute matrix. The index block is the first column of the attribute matrix, and the content block is the other columns in the corresponding attribute matrix excluding the index block. The intervals and gaps in the reconstructed attribute matrix are filled with a 0 matrix. The mapping function is reconstructed based on the reconstructed attribute matrix to obtain the reconstructed mapping function. The reconstructed access strategy includes the reconstructed attribute matrix and the reconstructed mapping function.

[0074] For example, input the set of access policies corresponding to each repeated ciphertext. For each attribute matrix ,in Decompose it into index blocks and content blocks Then the dimension of the reconstructed attribute matrix is OK The reconstructed attribute matrix structure is as follows:

[0075]

[0076] in, To reconstruct the access strategy, a mapping between matrix items and corresponding attribute information is constructed based on the reconstructed attribute matrix as a reconstruction mapping function.

[0077] In some specific embodiments, in the step of re-encrypting the saved ciphertext data using a reconstruction access strategy to obtain a plaintext saving result, n random numbers are pre-acquired and a vector is generated to obtain a re-encryption vector. Based on the re-encryption vector and the attribute matrix in the reconstruction access strategy, a reconstruction linear share is obtained. The ciphertext components in the ciphertext data are re-encrypted to obtain a reconstructed ciphertext component. A reconstruction strategy component is constructed based on the reconstruction linear share and the pre-acquired reconstruction blinding factor. The plaintext saving result consists of the reconstructed ciphertext component, the reconstruction strategy component, and the reconstruction access strategy.

[0078] Specifically, the formula for obtaining the re-encryption vector by pre-obtaining n random numbers and generating a vector is expressed as:

[0079]

[0080] in, For re-encrypted vectors, It is a random number. This adds a random number to the re-encrypted vector compared to the secret shared vector.

[0081] Specifically, the calculation method for reconstructing the linear share is as follows:

[0082]

[0083] in, To reconstruct the linear shares, To reconstruct the i-th row of the attribute matrix in the access strategy, where the range of values ​​for i is related to the dimension of the attribute matrix, This is a re-encrypted vector.

[0084] Specifically, the reconstruction blinding factor is obtained from a finite field, and the number of reconstruction blinding factors is the same as the number of rows in the attribute matrix in the reconstruction access strategy. This indicates the reconstruction of the blinding factor.

[0085] Furthermore, the newly added random number in the re-encrypted vector compared to the secret shared vector The ciphertext component is re-encrypted to obtain a reconstructed ciphertext component. The reconstructed ciphertext component includes a first reconstructed ciphertext component, a second reconstructed ciphertext component, and a third reconstructed ciphertext component. The formula for the first reconstructed ciphertext component is as follows:

[0086]

[0087] in, For the first reconstructed ciphertext component, First ciphertext component, Provided by publicly available parameters, This adds a random number to the re-encrypted vector compared to the secret shared vector.

[0088] Specifically, the formula for the second reconstructed ciphertext component is expressed as follows:

[0089]

[0090] in, To reconstruct the ciphertext component, Provided by publicly available parameters, This adds a random number to the re-encrypted vector compared to the secret shared vector.

[0091] Specifically, the third reconstructed ciphertext component is the same as the third ciphertext component, and the formula is expressed as:

[0092]

[0093] Furthermore, the reconstruction strategy component includes a first reconstruction strategy component and a second reconstruction strategy component, wherein the formula for the first reconstruction strategy component is expressed as:

[0094]

[0095] in, As the first refactoring strategy component, Provided by publicly available parameters, To reconstruct the mapping result of the reconstructing mapping function on the i-th row of the reconstructed attribute matrix in the access strategy, For corresponding The random elements are provided by public parameters. This is the reconstructed linear share corresponding to the i-th row of the reconstructed attribute matrix.

[0096] Specifically, the formula for the second reconstruction strategy is expressed as follows:

[0097]

[0098] in, For the second refactoring strategy component, Provided by publicly available parameters, This is the reconstructed linear share corresponding to the i-th row of the reconstructed attribute matrix.

[0099] The plaintext preservation result is represented as ,in, To preserve the results in plaintext, The number of rows in the reconstructed attribute matrix.

[0100] Specifically, this solution employs an incremental re-encryption algorithm. After policy reconstruction, there is no need for full decryption and re-encryption. Based solely on the existing core ciphertext components, random vectors and row linear fractions are introduced to incrementally calculate the re-encryption components and policy parameters. Only one copy of the plaintext storage result integrating multiple permissions needs to be stored, eliminating the need to generate independent data copies. For enterprise cloud environments with dozens to hundreds of permission combinations, this significantly reduces storage overhead and lowers costs.

[0101] Specifically, this solution's linear secret sharing scheme design supports arbitrarily complex access structures and is adaptable to scenarios such as cross-organizational collaboration, dynamic user group management, and multi-device IoT access. During system initialization, public parameters are generated by inputting the number of attributes. When adding attributes or expanding users, only the corresponding components and user keys need to be generated, without refactoring the system, demonstrating strong compatibility and scalability.

[0102] Example 2

[0103] This application provides a method for accessing plaintext data in a cloud server, including:

[0104] Obtain all attribute information of the accessing user to construct a user attribute set, and construct an attribute binding component for each attribute information in the user attribute set to form an attribute binding component collection;

[0105] The key generation center generates a corresponding user private key based on the attribute binding set, and uses the user private key to access the stored encrypted data in the cloud server. The stored encrypted data is obtained by the method in Embodiment 1.

[0106] Specifically, in the process of assigning a private key to each user, all attribute information of the user is obtained to construct a user attribute set. Where ATT is the user attribute set, att is the attribute information, and k is the number of user attribute sets. Based on the master key, user attribute set, and random number t, the first key component parameters, the second key component parameters, and the third key component parameters are constructed. For each attribute information in the user attribute set, an attribute binding component is constructed to form an attribute binding component set. The first key component parameters, the second key component parameters, the third key component parameters, and the binding component set are used as the private key of the corresponding user.

[0107] Specifically, the first key parameter is represented as The second key parameter is represented as The third key parameter is represented as The formula for property binding components is expressed as follows: , Where K is the first key parameter. The key is obtained based on the master key, where t is a random number and L is the second key parameter. Let N be the generator and N be the third key parameter. Obtained based on master key For collision-resistant hash functions, Here, i represents the attribute count index, and k represents the total number of user attribute information. For component property binding, h is obtained from public parameters.

[0108] The user's private key is represented as , where sk is the user's private key.

[0109] Example 3

[0110] Based on the same concept, referencing Figure 2 This application also proposes a plaintext data storage device based on a cloud server, comprising:

[0111] The encryption module is used to acquire multiple ciphertext data from multiple data owners and store them in the cloud server. The ciphertext data is obtained by encrypting plaintext data with public parameters, access policies and master keys. The ciphertext data is composed of access policies, ciphertext components and policy components.

[0112] The duplicate detection module is used to perform duplicate detection on multiple ciphertext data in a cloud server, and to identify ciphertext data originating from the same plaintext data as duplicate ciphertext data.

[0113] The reconstruction module is used to integrate and reconstruct the access strategy for each duplicate ciphertext data to obtain a reconstructed access strategy.

[0114] The re-encryption module is used to obtain any duplicate ciphertext data as the saved ciphertext data, re-encrypt the saved ciphertext data using the reconstruction access strategy to obtain the plaintext saved result, save the plaintext saved result in the cloud server, and delete all duplicate ciphertext data corresponding to the plaintext saved result in the cloud server.

[0115] Example 4

[0116] This embodiment also provides an electronic device, see reference. Figure 3 It includes a memory 404 and a processor 402, wherein the memory 404 stores a computer program and the processor 402 is configured to run the computer program to perform the steps in any of the above method embodiments.

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

[0118] Memory 404 may include a mass storage device for data or instructions. For example, and not limitingly, memory 404 may include a hard disk drive (HDD), a floppy disk drive, a solid-state drive (SSD), flash memory, an optical disk drive, a magneto-optical disk drive, magnetic tape, or a Universal Serial Bus (USB) drive, or a combination of two or more of these. Where appropriate, memory 404 may include removable or non-removable (or fixed) media. Where appropriate, memory 404 may be internal or external to a data processing device. In a particular embodiment, memory 404 is non-volatile memory. In a particular embodiment, memory 404 includes read-only memory (ROM) and random access memory (RAM). Where appropriate, the ROM may be a mask-programmed ROM, a programmable read-only memory (PROM), an erasable read-only memory (EPROM), an electrically erasable read-only memory (EEPROM), an electrically alterable read-only memory (EAROM), or flash memory, or a combination of two or more of these. Where appropriate, the RAM can be Static Random-Access Memory (SRAM) or Dynamic Random-Access Memory (DRAM). DRAM can be Fast Page Mode Dynamic Random-Access Memory (FPMDRAM), Extended Data Out Dynamic Random-Access Memory (EDODRAM), Synchronous Dynamic Random-Access Memory (SDRAM), etc.

[0119] The memory 404 can be used to store or cache various data files that need to be processed and / or communicated, as well as possible computer program instructions executed by the processor 402.

[0120] The processor 402 reads and executes computer program instructions stored in the memory 404 to implement any of the methods for storing plaintext data on a cloud server as described in the above embodiments.

[0121] Optionally, the electronic device may further include a transmission device 406 and an input / output device 408, wherein the transmission device 406 is connected to the processor 402, and the input / output device 408 is connected to the processor 402.

[0122] The transmission device 406 can be used to receive or send data via a network. Specific examples of the network described above may include wired or wireless networks provided by the communication provider of the electronic device. In one example, the transmission device includes a Network Interface Controller (NIC), which can connect to other network devices via a base station to communicate with the Internet. In another example, the transmission device 406 may be a Radio Frequency (RF) module used for wireless communication with the Internet.

[0123] Input / output device 408 is used to input or output information. In this embodiment, the input information may be attribute information, access policies, etc., and the output information may be plaintext saved results, etc.

[0124] Optionally, in this embodiment, the processor 402 can be configured to perform the following steps via a computer program:

[0125] Multiple encrypted data from multiple data owners are stored in a cloud server. The encrypted data is obtained by encrypting plaintext data with public parameters, access policies and master keys. The encrypted data is composed of access policies, encrypted components and policy components.

[0126] In the cloud server, duplicate detection is performed on multiple ciphertext data, and the ciphertext data that comes from the same plaintext data is identified as duplicate ciphertext data.

[0127] The access strategy for each repeated ciphertext data is integrated and reconstructed to obtain the reconstructed access strategy.

[0128] Obtain any duplicate ciphertext data as the saved ciphertext data, use the reconstruction access strategy to re-encrypt the saved ciphertext data to obtain the plaintext saved result, save the plaintext saved result in the cloud server, and delete all duplicate ciphertext data corresponding to the plaintext saved result in the cloud server.

[0129] It should be noted that the specific examples in this embodiment can refer to the examples described in the above embodiments and optional implementations, and will not be repeated here.

[0130] Generally, various embodiments can be implemented in hardware or dedicated circuitry, software, logic, or any combination thereof. Some aspects of the invention can be implemented in hardware, while others can be implemented by firmware or software executed by a controller, microprocessor, or other computing device, but the invention is not limited thereto. Although various aspects of the invention may be shown and described as block diagrams, flowcharts, or using some other graphical representation, it should be understood that, by way of non-limiting example, these blocks, apparatuses, systems, techniques, or methods described herein can be implemented in hardware, software, firmware, dedicated circuitry or logic, general-purpose hardware or controllers or other computing devices, or some combination thereof.

[0131] Embodiments of the present invention can be implemented by computer software, which may be executable by a data processor of a mobile device, such as a processor entity, or by hardware, or by a combination of software and hardware. Computer software or programs (also referred to as program products) including software routines, applets, and / or macros can be stored in any device-readable data storage medium, and they include program instructions for performing specific tasks. The computer program product may include one or more computer-executable components configured to perform the embodiments when the program is run. The one or more computer-executable components may be at least one piece of software code or a portion thereof. Additionally, it should be noted in this respect that, as Figure 3 Any box in the logical flow can represent a program step, or interconnected logic circuits, boxes and functions, or a combination of program steps and logic circuits, boxes and functions. Software can be stored on physical media such as memory chips or blocks of storage implemented within a processor, magnetic media such as hard disks or floppy disks, and optical media such as DVDs and their data variants, CDs, etc. The physical medium is a non-transient medium.

[0132] Those skilled in the art should understand that the technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments have been described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0133] The above embodiments are merely illustrative of several implementation methods of this application, and their descriptions are relatively specific and detailed, but they should not be construed as limiting the scope of this application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. A cloud server-based clear text data storage method, characterized by, The method comprises the following steps: Obtaining multiple ciphertext data from multiple data owners and storing the ciphertext data into a cloud server, wherein the ciphertext data is obtained by encrypting plaintext data by using public parameters, an access policy and a master key, and the ciphertext data is composed of the access policy, a ciphertext component and a policy component; Repeating detecting the multiple ciphertext data in the cloud server to obtain ciphertext data from the same plaintext data as repeated ciphertext data; Reconstructing the access policy of each repeated ciphertext data to obtain a reconstructed access policy, wherein an attribute matrix of each access policy is decomposed into an index block and a content block, a first column of a reconstructed attribute matrix is composed of the index block of each access policy, each content block is placed in a row corresponding to the column where the index block is located in the reconstructed attribute matrix, and the interval between the index block and the content block is L-1, L being the total number of rows of the reconstructed attribute matrix, the index block being the first column of the attribute matrix, the content block being other columns in the attribute matrix except the index block, the interval and the vacancy in the reconstructed attribute matrix being filled with a zero matrix, a mapping function is reconstructed based on the reconstructed attribute matrix to obtain a reconstructed mapping function, and the reconstructed access policy comprises the reconstructed attribute matrix and the reconstructed mapping function; Obtaining any repeated ciphertext data as a saved ciphertext data, re-encrypting the saved ciphertext data by using the reconstructed access policy to obtain a plaintext saved result, saving the plaintext saved result in the cloud server, and deleting all repeated ciphertext data corresponding to the plaintext saved result in the cloud server, wherein n random numbers are pre-obtained to generate a vector to obtain a re-encryption vector, a reconstructed linear share is obtained based on the re-encryption vector and the attribute matrix in the reconstructed access policy, the ciphertext component in the ciphertext data is re-encrypted to obtain a reconstructed ciphertext component, a reconstructed policy component is constructed based on the reconstructed linear share and a pre-obtained reconstructed blinding factor, and the plaintext saved result is composed of the reconstructed ciphertext component, the reconstructed policy component and the reconstructed access policy.

2. The cloud server-based plaintext data storage method of claim 1, wherein, The access policy comprises an attribute matrix and a mapping function, the mapping function is used for mapping each row in the attribute matrix into corresponding attribute information, the ciphertext component is used for saving the encrypted plaintext data, and the policy component comprises two policy parameters corresponding to each row of the attribute matrix and is used for verifying the attribute information.

3. The cloud server-based plaintext data storage method of claim 1, wherein, Hash computing the access policy of the plaintext data and the data owner to obtain a plaintext secret value, and constructing the ciphertext component based on the plaintext secret value; Obtaining a secret sharing vector from the plaintext secret value and n-1 random numbers in the pre-obtained public parameters, obtaining a linear share based on the secret sharing vector and the attribute matrix in the access policy, and constructing the policy component based on the linear share and a pre-obtained blinding factor, wherein the public parameters are generated based on the number of attribute information.

4. The cloud server-based plaintext data storage method of claim 1, wherein, Calculating a repeating detection parameter according to a de-duplication identification parameter in the ciphertext component, and if the repeating detection parameters of two ciphertext data are the same, the two ciphertext data come from the same plaintext data.

5. A method for accessing ciphertext data in a cloud server, the method comprising: The method comprises the following steps: Obtaining all attribute information of an access user to construct a user attribute set, and constructing an attribute binding component for each attribute information in the user attribute set to form an attribute binding component set. The key generation center generates a corresponding user private key based on an attribute binding set, and uses the user private key to access saved ciphertext data stored in the cloud server, wherein the saved ciphertext data is obtained by any one of the methods in claims 1-4.

6. A cloud server based clear text data storage apparatus characterized by, The method comprises: An encryption module is configured to store multiple ciphertext data from multiple data owners in the cloud server, wherein the ciphertext data is obtained by encrypting plaintext data using public parameters, an access policy, and a master key, and the ciphertext data is composed of the access policy, a ciphertext component, and a policy component; A duplicate detection module is configured to perform duplicate detection on the multiple ciphertext data in the cloud server, and obtain ciphertext data from the same plaintext data as duplicate ciphertext data; A reconstruction module is configured to integrate and reconstruct the access policy of each duplicate ciphertext data to obtain a reconstructed access policy, wherein the attribute matrix of each access policy is decomposed into an index block and a content block, the index block of each access policy is used to form the first column of a reconstructed attribute matrix, each content block is placed in the row of the column where the corresponding index block is located in the reconstructed attribute matrix, and the interval between the index block and the content block is L-1, L being the total number of rows of the reconstructed attribute matrix, wherein the index block is the first column of the attribute matrix, the content block is the column other than the index block in the attribute matrix, the interval and the empty part in the reconstructed attribute matrix are filled with a zero matrix, a mapping function is reconstructed based on the reconstructed attribute matrix to obtain a reconstructed mapping function, and the reconstructed access policy comprises the reconstructed attribute matrix and the reconstructed mapping function; A re-encryption module is configured to obtain any duplicate ciphertext data as saved ciphertext data, re-encrypt the saved ciphertext data using the reconstructed access policy to obtain plaintext saved results, save the plaintext saved results in the cloud server, and delete all duplicate ciphertext data corresponding to the plaintext saved results in the cloud server, wherein n random numbers are pre-obtained to generate a vector to obtain a re-encryption vector, a reconstructed linear share is obtained based on the re-encryption vector and the attribute matrix in the reconstructed access policy, a reconstructed ciphertext component is obtained by re-encrypting the ciphertext component in the ciphertext data, a reconstructed policy component is constructed based on the reconstructed linear share and the pre-obtained reconstructed blinding factor, and the plaintext saved results are composed of the reconstructed ciphertext component, the reconstructed policy component, and the reconstructed access policy. 7.An electronic device comprising a memory and a processor, the electronic device characterized by, The memory stores a computer program, and the processor is configured to run the computer program to execute the cloud server-based plaintext data storage method of any one of claims 1-4 or the method for accessing ciphertext data in the cloud server of claim 5.

8. A readable storage medium, characterized by, The readable storage medium stores a computer program, and the computer program is executed by the processor to implement the cloud server-based plaintext data storage method of any one of claims 1-4 or the method for accessing ciphertext data in the cloud server of claim 5.