WO2016115663A1 - Method and apparatus for heterogeneous data storage management in cloud computing - Google Patents

Method and apparatus for heterogeneous data storage management in cloud computing Download PDF

Info

Publication number
WO2016115663A1
WO2016115663A1 PCT/CN2015/071013 CN2015071013W WO2016115663A1 WO 2016115663 A1 WO2016115663 A1 WO 2016115663A1 CN 2015071013 W CN2015071013 W CN 2015071013W WO 2016115663 A1 WO2016115663 A1 WO 2016115663A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
deduplication
owner
dek
policy
Prior art date
Application number
PCT/CN2015/071013
Other languages
French (fr)
Inventor
Zheng Yan
Original Assignee
Nokia Technologies Oy
Navteq (Shanghai) Trading Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Technologies Oy, Navteq (Shanghai) Trading Co., Ltd. filed Critical Nokia Technologies Oy
Priority to PCT/CN2015/071013 priority Critical patent/WO2016115663A1/en
Priority to CN201580073740.0A priority patent/CN107113314B/en
Priority to US15/542,952 priority patent/US10581856B2/en
Priority to EP15878341.5A priority patent/EP3248354A4/en
Priority to JP2017536778A priority patent/JP6404481B2/en
Publication of WO2016115663A1 publication Critical patent/WO2016115663A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Definitions

  • Embodiments of the disclosure generally relate to data storage management in a communication network, and, more particularly, to heterogeneous data storage management in cloud computing.
  • Cloud computing is computing in which large groups of remote servers are networked to allow centralized data storage, and online access to computer services or resources. It offers a new way of Information Technology (IT) services by re-arranging various resources (e.g., storage, computing and services) and providing them to users based on their demands. Cloud computing provides a big resource pool by linking network resources together. It has desirable properties, such as scalability, elasticity, fault-tolerance, and pay-per-use. Thus, it becomes a promising service platform, rearranging the structure of IT.
  • IT Information Technology
  • Storage service is one of the most widely consumed cloud services.
  • various data are stored at cloud, e.g., sensitive personal information, personal data, publicly shared data, limited shared data with a group of people and so on.Particularly, crucial data should be protected at the cloud to prevent from any access from unauthorized parties. Some unimportant data, however, has no such a demand.
  • CSP cloud service providers
  • duplicated data may be stored at the cloud by the same users or different users, especially for shared data, in the same CSP or cross CSPs.
  • cloud storage space is huge, this kind of duplication may greatly waste networking resources, consume a lot of power energy, increase operation cost, or make data management complicated.
  • economic storage will greatly benefit CSPs by reducing operation cost and reversely benefit cloud users with reduced service fee.
  • a method for managing data storage in a communication network comprising: receiving at a data center in the communication network from a first device, a request for storing a data in the data center; checking whether the same data has been stored in the data center; in response to a check result that no same data has been stored in the data center, receiving from the first device a data package containing at least the data in plaintext or ciphertext (CT) ; in response to a check result that the same data has been stored in the data center, obtaining a deduplication policy for the data; when the deduplication policy indicates deduplication to be controlled by both or either of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner, contacting both or either of the AP and the data owner, or only the AP, or only the data owner to conduct deduplication for the data; and when the deduplication policy indicates deduplication to be controlled by none of the AP and the data owner, conducting deduplication
  • the data package further contains an index list and a hash chain information, the index list including a plurality of indexes each indicating a specific part of the data, the hash chain information including a plurality of hash information each corresponding to one index; wherein contacting to conduct deduplication or conducting deduplication for the data comprises: requesting the first device to transmit a hash information corresponding to at least one index from the index list; verifying whether the first device holds the data based on the hash information from the first device corresponding to the requested at least one index; and in response to a positive verification result, contacting to conduct deduplication or recording a deduplication information of the data for the first device.
  • obtaining the deduplication policy for the data comprises reading the deduplication policy stored in advance in the data center, or receiving the deduplication policy from the data owner, or determining the deduplication policy according to the data package.
  • determining the deduplication policy comprises: when the data package further contains a first cipherkey (CK) and a second CK being not equal to each other, determining deduplication to be controlled by both of the AP and the data owner, the first and second CKs being generated by separating a data encryption key (DEK) into a first DEK and a second DEK and encrypting the first and second DEKs respectively, the DEK being used for encrypting the data to obtain the CT; when the data package further contains the first and second CKs being equal to each other, determining deduplication to be controlled by either of the AP or the data owner; when the data package further contains only the first CK or only the second CK, determining deduplication to be controlled by only the AP or only the data owner; and when the data package contains no CK, determining deduplication to be controlled by none of the AP and the data owner.
  • CK cipherkey
  • CK cipherkey
  • second CK being not equal to each other,
  • contacting the AP to conduct deduplication for the data comprises: receiving a re-encryption key for the first device from the AP when it is not available; re-encrypting the first CK with the re-encryption key according to a proxy re-encryption (PRE) scheme; and transmitting the re-encrypted first CK to the first device such that the first device can decrypt the re-encrypted first CK with a secret key of the first device.
  • PRE proxy re-encryption
  • contacting the data owner to conduct deduplication for the data comprises: transmitting an attribute identity (ID) of the first device to the data owner such that the data owner can issue an attribute secret key for the first device when it is eligible to decrypt the second CK according to an attribute based encryption (ABE) scheme.
  • ID attribute identity
  • ABE attribute based encryption
  • the method further comprises: in response to a check result that no same data has been stored in the data center, requesting at least one further data center to check whether the same data has been stored in it; in response to a positive reply from the at least one further data center, recording a deduplication information of the data for the first device, wherein the at least one further data center is able to conduct deduplication for the data; in response to a negative reply from the at least one further data center, performing data storage accordingly.
  • the method further comprises: receiving at the data center from a second device, a request for deleting a data; checking whether the data is stored by the second device in the data center; in response to a positive check result, deleting a record of storage of the data for the second device; deleting the data when a deduplication record for the data is empty; and notifying an owner of the data for updating the CT when the deduplication record for the data is not empty; and in response to a negative check result, contacting another data center that stores the data, wherein the another data center is able to delete a record of storage of the data for the second device.
  • the method further comprises: notifying the owner for updating the CT comprises: inquiring whether the owner decides to continue deduplication control; in response to a positive decision, cooperating with the data owner to update the CT according to the deduplication policy of the data; in response to a negative decision, requesting another holder of the data for updating the CT, or cooperating with the data owner to update the CT according to a new deduplication policy, the new deduplication policy indicating deduplication to be controlled by only the AP.
  • the method further comprises: in response to a request for updating the CT of a data, obtaining the deduplication policy for the data; when the deduplication policy indicates that AP deduplication control is needed, re-encrypting the updated first CK with the re-encryption key according to a PRE scheme; and transmitting the re-encrypted updated first CK to the first device such that the first device can decrypt the re-encrypted updated first CK with a secret key of the first device; when the deduplication policy indicates that a deduplication control by the data owner is needed, informing the data owner the data identifier and the public key information of the data holder according to a ABE scheme when necessary in order to allow the data owner to perform data deduplication by issuing a secret key to the first device that can decrypt the updated second CK.
  • a method for managing data storage in a user device comprising: transmitting at the user device, a request for storing a data to a data center; in response to a request for the data from the data center, transmitting a data package containing at least the data in plaintext or ciphertext (CT) to the data center, wherein a deduplication policy for the data is contained in the data package or can be determined according to the data package, the deduplication policy indicating deduplication to be controlled by both or either or none of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner; in response to a deduplication request for the data from the data center or at least one further data center, issuing an attribute secret key to an eligible data holder according to an attribute based encryption (ABE) scheme for conducting deduplication.
  • ABE attribute based encryption
  • the method further comprises: transmitting in the data package an index list and a hash chain information for verifying holdership of the data for an eligible data holder, the index list including a plurality of indexes each indicating a specific part of the data, the hash chain information including a plurality of hash information each corresponding to one index.
  • the method further comprises: transmitting a request for storing a second data to the data center; in response to a request for a hash information corresponding to at least one index from the data center, transmitting a calculated hash information corresponding to the at least one index to the data center for verifying the holdership of the second data.
  • the method further comprises: when the deduplication policy indicates deduplication to be controlled by both of the AP and the data owner, transmitting in the data package a first cipherkey (CK) and a second CK being not equal to each other, the first and second CKs being generated by separating a data encryption key (DEK) into a first DEK and a second DEK and encrypting the first and second DEKs respectively, the DEK being used for encrypting the data to obtain the CT; when the deduplication policy indicates deduplication to be controlled by either of the AP or the data owner, transmitting in the data package the first and second CKs being equal to each other; when the deduplication policy indicates deduplication to be controlled by only the AP or only the data owner, transmitting in the data package only the first CK or only the second CK;and when the deduplication policy indicates deduplication to be controlled by none of the AP and the data owner, transmitting the plaintext in the data package.
  • CK cipherkey
  • CK
  • the first DEK is encrypted with a public key of the AP according to a proxy re-encryption (PRE) scheme; and wherein the second DEK is encrypted based on an access policy, the access policy containing user identities (IDs) of users eligible for holding the data.
  • PRE proxy re-encryption
  • the deduplication request for the data contains a user ID information; wherein issuing the attribute secret key for conducting deduplication comprises: verifying whether the user ID information represents a user eligible for holding the data; and in response to a positive verification result, generating the attribute secret key based on the user ID information.
  • the method further comprises: receiving a re-encrypted first CK for the second data from the data center; decrypting the re-encrypted first CK with a private key of the user device to obtain the first DEK; receiving an attribute secret key from an owner of the second data, and receiving the second CK for the second data from the owner of the second data or the data center; decrypting the second CK with the attribute secret key to obtain the second DEK; combining the first and second DEKs to obtain the DEK for deduplication.
  • the method further comprises: transmitting at the user device, a request for deleting a data to the data center; in response to a request for a hash information corresponding to at least one index from the data center, transmitting a calculated hash information corresponding to the at least one index to the data center for verifying the holdership of the data; in response to a request to update the CT from the data center or at least one further data center, updating the CT according to a deduplication policy of the data.
  • the method further comprises: when continuous deduplication control is needed, updating the CT according to an original deduplication policy of the data; and when no continuous deduplication control is needed, updating the CT according to a new deduplication policy, the new deduplication policy indicating deduplication to be controlled by only the AP.
  • the method further comprises: transmitting a request for updating a CT of a data to the data center, wherein a deduplication policy for the data is contained in the request or can be determined according to the request, the deduplication policy indicating deduplication to be controlled by both or either of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner or none; when the deduplication policy indicates that data owner deduplication control is needed, issuing an attribute secret key to an eligible data holder according to an attribute based encryption (ABE) scheme for conducting deduplication when the attribute secret key is not sent before.
  • AP authorized party
  • ABE attribute based encryption
  • the method further comprises: receiving a re-encrypted updated first CK from the data center; decrypting the re-encrypted updated first CK with a private key of the user device to obtain the updated first DEK; receiving an attribute secret key from an owner of the data when it is not available, and receiving the updated second CK from the data center or the data owner; decrypting the updated second CK with the attribute secret key to obtain the updated second DEK; combining the updated first and second DEKs to obtain the updated DEK for deduplication.
  • an apparatus comprising means configured to perform all steps of any one of the above described methods.
  • an apparatus comprising: at least one processor; and at least one memory including computer-executable code, wherein the at least one memory and the computer-executable code are configured to, with the at least one processor, cause the apparatus to perform all steps of any one of the above described methods.
  • a computer program product comprising at least one non-transitory computer-readable storage medium having computer-executable program code stored therein, the computer-executable code being configured to, when being executed, cause an apparatus to operate according to any one of the above described methods.
  • FIG. 1 shows an exemplary system in which at least one embodiment of the present disclosure may be implemented
  • FIG. 2 depicts a flowchart of an overall system process for data deduplication with heterogeneous control according to an embodiment of the present disclosure
  • FIG. 3 depicts a flowchart of an overall system process for data deduplication with an authorized party’s control according to an embodiment of the present disclosure
  • FIG. 4 depicts a flowchart of an overall system process for data deduplication with a data owner’s control according to an embodiment of the present disclosure
  • FIG. 5 depicts a flowchart of an overall system process for data deduplication without any control of an authorized party or a data owner according to an embodiment of the present disclosure
  • FIG. 6 shows a flowchart of a process for data deduplication through multiple cloud service providers’ cooperation according to an embodiment of the present disclosure
  • FIG. 7 shows a flowchart of a process for data deletion according to an embodiment of the present disclosure
  • FIG. 8 shows a flowchart of a process for continuous data deduplication control according to an embodiment of the present disclosure
  • FIG. 9 shows a flowchart of an overall system process for updating data encryption key and ciphertext according to an embodiment of the present disclosure
  • FIG. 10 shows a flowchart of a process for managing data storage in a user device according to an embodiment of the present disclosure
  • FIG. 11 shows a flowchart of a process for managing data storage in a communication network according to an embodiment of the present disclosure.
  • FIG. 12 is a simplified block diagram showing an apparatus that are suitable for use in practicing some exemplary embodiments of the present disclosure.
  • Duplicated data may be stored at the cloud by the same users or different users, especially for shared data, in the same CSP or cross CSPs.
  • the same data may be stored in the format of either plaintext or ciphertext (encrypted using different keys known by different data holders) .
  • Duplicated data storage greatly wastes storage resources, unnecessarily consumes power energy, increases operation cost of cloud service providers, and complicates data management at the cloud (e.g., searching data may become complicated) .
  • the embodiments of the present disclosure can provide a holistic and heterogeneous method for securely managing data storage in cloud computing to flexibly support data deduplication controlled by either data owner or a trusted third party or both or none in order to satisfy the demand on data security and privacy and at the same time save storage spaces in various data storage scenarios.
  • the embodiments of the present disclosure will be described with reference to FIGs. 1-12.
  • FIG. 1 shows an exemplary system in which at least one embodiment of the present disclosure may be implemented.
  • the system 100 may comprise a plurality of user devices 110-1 ⁇ 110-n, data centers 120 and 120’ , and an authorized party (AP) 130.
  • the user devices 110-1 ⁇ 110-n it may enable its user to upload and save data at the data center 120 or 120’ .
  • the data may be uploaded and saved in a format of plaintext
  • the data may be uploaded and saved in a format of ciphertext.
  • the users of the user devices 110-1 ⁇ 110-n may hold the same one data, and at least one of these data holders may be an owner of the data.
  • the data owner may decide freely to allow data deduplication to be controlled by the data owner, or by the AP 130, or by both, or by none.
  • the user device 110 may be any fixed or mobile device capable of conducting wired and/or wireless communication, such as a desktop computer, a laptop computer, a mobile phone, a tablet computer, a personal digital assistant (PDA) , and so on.
  • PDA personal digital assistant
  • the data center 120 or 120’ may offer data storage services. When a number of data holders save the same plain or encrypted data at the data center 120 or 120’ , the data center 120 or 120’ may conduct data deduplication by itself, or cooperate with the data owner and/or the AP 130 to conduct data deduplication. The data center 120 and 120’ may cooperate under a business agreement to save storage space through deduplication. Although two data centers 120 and 120’ are shown in FIG. 1, there may be more data centers in the system 100.
  • the data center 120 and 120’ may be provided for example by different CSPs (for example, a local CSP and a remote CSP) . Alternatively, the data center 120 and 120’ may be implemented through any other data storage technologies such as traditional file hosting service technology.
  • the AP 130 may manage the access to the data stored at the data center 120 or 120’ .
  • the AP 130 may handle data deduplication on behalf of the data owner or cooperate with the data owner to conduct data deduplication via the data center 120 or 120’ .
  • the AP 130 may play as an access management center.
  • the AP is a party that doesn’t collude with any data centers and is trusted by the data holders to handle data deduplication.
  • the AP may be for example a specially established organization.
  • the communication network by which the user devices 110-1 ⁇ 110-n, the data center 120 and 120’ , and the AP 130 communicate with each other may include wired and/or wireless networks. These network may include, but not limited to, a local area network (LAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public data network (e.g., the Internet) , a self-organized mobile network, or any other suitable packet-switched network, such as a commercially owned, proprietary packet-switched network, e.g., a proprietary cable or fiber-optic network.
  • LAN local area network
  • MAN metropolitan area network
  • WAN wide area network
  • a public data network e.g., the Internet
  • a self-organized mobile network e.g., the Internet
  • any other suitable packet-switched network such as a commercially owned, proprietary packet-switched network, e.g., a proprietary cable or fiber-optic network.
  • the wireless network may be, for example, a cellular network and may employ various technologies including enhanced data rates for global evolution (EDGE) , general packet radio service (GPRS) , global system for mobile communications (GSM) , Internet protocol multimedia subsystem (IMS) , universal mobile telecommunications system (UMTS) , etc. , as well as any other suitable wireless medium, e.g., worldwide interoperability for microwave access (WiMAX) , wireless local area network (WLAN) , Long Term Evolution (LTE) networks, code division multiple access (CDMA) , wideband code division multiple access (WCDMA) , wireless fidelity (WiFi) , satellite, mobile ad-hoc network (MANET) , delay tolerant networks, and so on.
  • EDGE enhanced data rates for global evolution
  • GPRS general packet radio service
  • GSM global system for mobile communications
  • IMS Internet protocol multimedia subsystem
  • UMTS universal mobile telecommunications system
  • WiMAX worldwide interoperability for microwave access
  • FIG. 2 depicts a flowchart of an overall system process for data deduplication with heterogeneous control according to an embodiment of the present disclosure. It should be noted that although some embodiments of the present disclosure will be described hereinafter with reference to FIGs. 2-9 in which the data center is implemented through cloud storage technology, the present disclosure should not be so limited. As mentioned above, one skilled in the art can understand that the principle of the present disclosure can also be applied to a data center which is implemented through any other data storage technologies such as traditional file hosting service technology.
  • the data owner may be allowed to set a data encryption key (DEK) to be a null value or a non-null value, for example according to different storage scenarios and/or deduplication policies. If the data owner doesn’t want to control data access, the DEK may be set to have a null value. In this case, plaintext may be saved in a CSP, and the CSP may handle deduplication fully. On the other hand, if data access control is needed, the DEK may be set to have a non-null value. The non-null value may be a symmetric secret key. In this case, a ciphertext (CT) may be saved.
  • CT ciphertext
  • ABE attribute-based encryption
  • users may be identified by a set of attributes rather than an exact identity.
  • Each data may be encrypted with an attribute-based access structure, such that only the users whose attributes satisfy the access structure can decrypt the data.
  • ABE has developed into two branches, key-policy ABE (KP-ABE) and ciphertext-policy ABE (CP-ABE) depending on how attributes and policy are associated with ciphertexts and users’ decryption keys.
  • KP-ABE key-policy ABE
  • CP-ABE ciphertexts may be encrypted according to an access control policy which is formulated as a Boolean formula over the attributes. The construction assures that only a user whose attributes satisfy the access control policy is able to decrypt the ciphertext with its secret attribute key.
  • KP-ABE a user’s secret key may be associated with a set of attributes.
  • the DEK2 may be encrypted to obtain a cipherkey CK2, based on an access policy which contains eligible data holders’ identities (ID) . That is, an eligible data holder’s ID is used as an attribute. In this way, the eligible data holder’s attribute satisfies the access policy, and thus can decrypt the CK2.
  • ID eligible data holders’ identities
  • a proxy re-encryption (PRE) scheme may be used. PRE enables a delegator to implement fine-grained policies with one key pair without any additional trust on a proxy.
  • a CT for a delegator may be generated with the delegator’s public key, and the delegator may assign a re-encryption key to a proxy for an eligible data holder for data access, then the proxy may re-encrypt the CT with the re-encryption key, such that the re-encrypted CT can be decrypted with a secret key of an eligible data holder (i.e. , delegatee) .
  • the AP may act as a delegator
  • a CSP may act as a proxy
  • an eligible data holder may act as a delegatee.
  • the data owner may encrypt the DEK1 with the AP’s public key to obtain a CK1, and transmit the CK1 to the CSP.
  • the CSP may re-encrypt the CK1 with a re-encryption key assigned by the AP, and transmit the re-encrypted CK1 to an eligible data holder. In this way, the eligible data holder may decrypt the re-encrypted CK1 with its own delegatee secret key.
  • the present disclosure can propose two-dimensional storage management on cloud data deduplication by either data owner or an authorized party or both or neither of them. It can be applied into the scenario that cloud data deduplication can be handled by either the data owner or a third trusted party or both or none.
  • a hash code of a duplicated data M may be used as its identifier, which is used to check duplication of data during data uploading and storage.
  • the hash code of the data M i.e. H (M) may be signed by the data owner or data holder for originality verification performed by the CSP.
  • the H (M) may be signed through public key cryptosystem (PKC) .
  • PKC public key cryptosystem
  • a number of hash codes of randomly selected specific parts of the data M may be calculated with their indexes (e.g., the hash code of the first 20.1%of data, the hash code of 21-25%of data) .
  • These hash codes may be called as a hash chain HC (M) of the data M.
  • a data owner/holder When a data owner/holder tries to store the data M at the CSP, it may send the signed hash code of the data M to the CSP for duplication check. If the duplication check result is positive, the CSP may further verify the ownership of the data holder by challenging the hash chain of the data M (e.g., some specific hash codes in the chain) . If the ownership verification result is positive based on the hash chain verification, the CSP may contact the data owner and/or AP for deduplication based on the policy of the data owner for deduplication.
  • Data duplication check may be performed among CSPs.
  • One CSP may save data for other CSPs. If a data holder tries to save the same data in another CSP, duplication check may be performed among CSPs based on their agreement. Duplicated data access from another CSP’s eligible users may be supported by the CSPs.
  • the InitiateNode algorithm may be conducted at a user u at system setup, and take as input a node identity u, which is generally a unique node identity.
  • the algorithm may output the following key pairs and certificates:
  • the public user key PK_u’ may be used to issue a secret attribute key for the user u’ (i.e. SK_ (ID, u, u’ ) ) by calling the aftermentioned algorithm IssueIDSK (ID, SK_u, PK_u’ ) .
  • Each user may maintain a secret key SK_u that is used to issue secret attribute keys to other users based on other user’s identity. It may also be used to generate its own public key of identity attribute (denoted as ID) of the user u -pk_ (ID, u) .
  • the secret user key SK_u may also be used for decryption of a ciphertext encrypted by the PK_u.
  • a key pair PK’ _u and SK’ _u for public key cryptosystem (PKC) may be used for conducting signature generation and for decrypting data that is encrypted with PK’ _u. Accordingly, the PK’ _u may be used for conducting signature verification and for encrypting data.
  • a key pair pk_u and sk_u for PRE there may be three types of parties in a PRE system, i.e. a delegator, a proxy and a delegatee.
  • a data holder may be a delegatee.
  • the pk_u may also be referred to as a delegatee public key
  • the sk_u may also be referred to as a delegatee secret key.
  • the PK_u, PK’ _u and pk_u may be certified by an authorized third party (e.g., CA in PKI) or the CSP as Cert (PK_u) , Cert (PK’ _u) and Cert (pk_u) .
  • the Cert (PK_u) , Cert (pk_u) and Cert (PK’ _u) may be verified by the CSP and CSP users.
  • the AP may independently generate pk_AP and sk_AP for PRE, and broadcast the pk_AP through the CSP’s storage service to CSP users.
  • the AP may act as a delegator in a PRE system.
  • the pk_AP may also be referred to as a delegator public key
  • the sk_AP may also be referred to as a delegator secret key.
  • the Encrypt algorithm may take as input the data M, the symmetric key DEK_u.
  • the algorithm may encrypt the data M with the DEK_u, and output the ciphertext CT_u. This process may be conducted at the user u to protect its data stored at the CSP with the DEK_u.
  • this function may output two parts of keys: DEK 1 _u and DEK 2 _u based on e.g., random separation.
  • the CreateIDPK algorithm may be executed by the user u (i.e. , the data owner) whenever the user u would like to control its data storage and access at the cloud.
  • the algorithm may check whether the ID (e.g., PK_u) of the user u satisfies policies related to data storage management. For example, it may check whether the ID is an eligible ID of a data owner for managing storage and access of a data. If the ID satisfies the policies, the algorithm may output a public attribute key (denoted pk_(ID, u) ) associated with the ID for the user u, according to an ABE mechanism. Otherwise, the algorithm may output NULL.
  • a public attribute key denoted pk_(ID, u)
  • ID can be an anonymous identifier
  • pk_ a public key
  • EncryptKey (DEK 2 _u, A, pk_ (ID, u)) .
  • the EncryptKey algorithm may take as input the part 2 of the symmetric key DEK 2 _u, an access policy A and the public key pk_ (ID, u) corresponding to the identity attribute occurring in policies related to data storage management.
  • the algorithm may encrypt DEK 2 _u with the policy A and output the cipherkey CK 2 _u. This process may be conducted at the user u to support deduplication of data storage at the CSP.
  • IssueIDSK (ID, SK_u, PK_u’ ) .
  • the eligibility of the user u’ may be checked by checking whether the Cert (PK_u’ ) is a valid identifier certified by a third trusted party or the data owner itself.
  • the Cert (PK_u’ ) may be received by the user u from the user u’ via the CSP, which will be described later with reference to FIG. 2.
  • the IssueIDSK algorithm may be executed by the user u by firstly checking whether the user u’ with a public key PK_u’ is an eligible attribute ID (i.e. , the PK_u’ is an authorized party for holding the data) . For example, it may check whether the PK_u’ s atisfies the access policy A.
  • the IssueIDSK algorithm may output a secret attribute key SK_ (ID, u, u’ ) for the user u’ . Otherwise, the algorithm may output NULL.
  • the generated SK_ (ID, u, u’ ) may be sent to the user u’ by the user u through a secure channel or using PKC.
  • the corresponding secret attribute keys for decrypting cipher-key encrypted by the pk_ (ID, u) are personalized for eligible data holders and issued by the data owner u. To prevent collusion, every data holder gets a different secret attribute key that only it can use.
  • a secret attribute key of the attribute ID, issued for an eligible holder u’ by the user u is denoted as sk_ (ID, u, u’ ) .
  • DecryptKey (CK 2 _u, A, PK_u’ , sk_ (ID, u, u’ )) .
  • the DecryptKey algorithm may take as input a cipherkey produced by the EncryptKey algorithm, an access policy A under which CK 2 _u was encrypted, and SK_u’ , sk_ (ID, u, u’ ) for the user u’ .
  • the DecryptKey algorithm may decrypt the cipherkey CK 2 _u and output the corresponding plainkey DEK 2 _u if the attributes (e.g., the PK_u’ ) are sufficient to satisfy the access policy A. Otherwise, the algorithm may output NULL.
  • This process may be executed at the user u’ if duplicated storage happens. It firstly checks whether the PK_u’ s atisfies the encryption policy A, and then conducts decryption to get DEK 2 _u if the check result is positive.
  • a PRE scheme can apply AP to support DEK 1 re-encryption.
  • Proxy re-encryption may allow the CSP (i.e. , the proxy) to transform a ciphertext of the DEK 1 computed under the AP’s public key into one that can be decrypted using an eligible data holder’s privacy key.
  • the CSP learns nothing about the underlying plaintext of the DEK 1 , and thus cannot know the plain data of data holders.
  • the algorithms about a PRE scheme are represented as below:
  • the re-encryption key generation algorithm, RG may output a re-encryption key rk_AP ⁇ u’ for the proxy CSP.
  • the decryption algorithm D may output the plain key DEK 1 _u.
  • CombineKey (DEK 1 _u, DEK 2 _u) .
  • this function may output the full key DEK_u through combination.
  • the Decrypt algorithm may take as input the encrypted data CT_u and the symmetric key DEK_u.
  • the algorithm may decrypt the CT_u with the DEK_u and output the plain data M. This process is conducted at data holders to disclose the plain content of stored data at the CSP.
  • a user u1 is the real data owner and saves its sensitive personal data M at a CSP with protection using a DEK_u1
  • a user u2 is a data holder who tries to save the same data at the CSP.
  • Both the data owner and an AP are needed for deduplication control, and there is only one CSP in the system of FIG. 2.
  • system setup may be conducted at each user, the CSP and the AP.
  • each user u i may get the corresponding certificates of its generated public keys Cert (PK_u i ) , Cert (PK’ _u i ) and Cert (pk_u i ) from an authorized third party (e.g., CA in PKI) or the CSP.
  • an authorized third party e.g., CA in PKI
  • the user u 1 may generate three key pairs (PK_u 1 , SK_u 1 ) , (PK’ _u 1 , SK’ _u 1 ) , (pk_u 1 , sk_u 1 ) , and get the corresponding certificates of its generated public keys Cert (PK_u 1 ) , Cert (PK’ _u 1 ) and Cert (pk_u 1 ) .
  • the key pair for PRE i.e. (pk_u 1 , sk_u 1 ) and corresponding certificate Cert (pk_u 1 ) may also be omitted.
  • the user u 2 may generate three key pairs (PK_u 2 , SK_u 2 ) , (PK’ _u 2 , SK’ _u 2 ) , (pk_u 2 , sk_u 2 ) , and get the corresponding certificates of its generated public keys Cert (PK_u 2 ) , Cert (PK’ _u 2 ) and Cert (pk_u 2 ) .
  • step 202d it may call InitiateAP to generate its key pair (pk_AP, sk_AP) , and broadcast the pk_AP to each user. Further, for the CSP, in step 202c, it may receive respective public keys PK_u i , PK’ _u i and pk_u i , and issue corresponding certificates Cert (PK_u i ) , Cert (PK’ _u i ) and Cert (pk_u i ) to each user u i .
  • the user u 1 may generate hash information of the data M.
  • the hash information may include at least a hash code of the data M.
  • the user u 1 may calculate H (M) , and sign the H (M) with SK’ _u 1 as Sign (H (M) , SK’ _u 1 ) , where Sign () denotes a signature function.
  • the user u 1 may send at least the hash information of the data M.
  • the package may contain at least H (M) , Sign (H (M) , SK’ _u 1 ) , and Cert (PK’ _u 1 ) necessary for the check of data storage duplication.
  • the CSP may check whether the same data M has been saved at the CSP; if no same data has been saved at the CSP, the CSP may request the user u 1 to send the data; and if the same data has been saved at the CSP, the CSP may verify the ownership of the user u 1 , which will be described in detail in the aftermentioned step 220. It should be noted that the steps 208 and 220 are substantially same. Because it is assumed that the first uploader is the real data owner, the CSP requests the user u 1 to upload the data in step 208.
  • the CSP may verify the certificate Cert (PK’ _u 1 ) , then verify the signature Sign (H (M) , SK’ _u 1 ) with the PK’ _u 1 , and then check if the same H (M) is recorded at the CSP. Because the user u 1 (i.e. the data owner) is assumed to be the first uploader, the CSP may request the data from the user u 1 in step 210.
  • the user u 1 may encrypt the data M with a DEK, separate the DEK into a DEK1 and a DEK2, encrypt the DEK1 according to a PRE scheme, and encrypt the DEK2 according to an ABE scheme, and calculate an index list and hash chain information of the data M.
  • the user u 1 may then call SeparateKey (DEK_u 1 ) to get two random parts of the DEK_u 1 : DEK1_u 1 and DEK2_u 1 .
  • the user u 1 may encrypt the DEK2_u 1 with a pk_ (ID, u 1 ) by calling EncryptKey (DEK2_u 1 , A, pk_ (ID, u 1 )) to get CK1_u 1 , where pk_ (ID, u 1 ) is generated according to the data storage management policy of the user u 1 , as mentioned above.
  • the user u 1 may then encrypt DEK1_u 1 with a pk_AP to get CK 1 _u 1 by calling E (pk_AP, DEK 1 _u 1 ) .
  • the user u 1 may further sign the HC (M) with the SK’ _u 1 to get Sign (HC (M) , SK’ _u 1 ) .
  • the user u 1 may send the index list, the hash chain information, the encrypted data, the encrypted DEK1 and the encrypted DEK2.
  • the hash chain information may include at least the hash chain of the data M.
  • the CSP may store the data package.
  • the user u 2 may later on try to save the same data M at the CSP.
  • the user u 2 may send at least the hash information of the data M.
  • the package may contain at least H (M) , Sign (H (M) , SK’ _u 1 ) , and Cert (PK’ _u 1 ) necessary for the check of data storage duplication.
  • the CSP may check whether the same data has been saved at the CSP; if no same data has been saved at the CSP, the CSP may request the user to send the data; and if the same data has been saved at the CSP, the CSP may verify the ownership of the user. Because the user u 1 has saved the same data at the CSP, the above check result is positive. In this case, the CSP may request the user u 2 to send hash information corresponding to at least one index from the index list. For example, the CSP may randomly select one index x or more than one index. The CSP may further encrypt the index x with the PK’ _u 2 as E (x, PK’ _u 2 ) . Then, in step 222, the CSP may send the index information (e.g., E (x, PK’ _u 2 )) to the user u 2 .
  • the CSP may send the index information (e.g., E (x, PK’ _u 2 )) to the user
  • the user u 2 may calculate and send the corresponding hash information to the CSP.
  • the corresponding hash information may include at least the hash information corresponding to the at least one index sent from the CSP.
  • the user u 2 may calculate a hash code HC (M x ) , where M x denotes the partial M corresponding to the at least one index x sent from the CSP.
  • the user u 2 may further sign the HC (M x ) with the SK’ _u 2 as Sign (HC (M x ) , SK’ _u 2 ) .
  • the user u 2 may send the HC (M x ) and the Sign (HC (M x ) , SK’ _u 2 ) to the CSP.
  • the HC (M x ) and the Sign (HC (M x ) , SK’ _u 2 ) to the CSP.
  • more than one HC (M x ) could be challenged by CSP at this step in order to ensure the holdership of the data.
  • the CSP may verify the hash information sent from the user u 2 based on the hash chain information that has been saved at the CSP by the user u 1 ; if the verification result is positive, the CSP may contact the AP and the user u 1 for deduplication. It should be noted that the AP and the user u 1 may be contacted simultaneously or sequentially without the order being limited, although it is shown in FIG. 2 that the CSP contact the AP first and then contact the user u 1 .
  • the CSP may verify the Sign (HC (M x ) , SK’ _u 2 ) with the PK’ _u 2 , and check whether the received HC (M x ) is the same as the HC (M x ) that has been saved at the CSP. If the check result is positive, the CSP may proceed to step 228.
  • the CSP may send the public key information for PRE of the user u 2 to the AP if it is not shared with AP before. For example, the CSP may send the certificate Cert (pk_u 2 ) (that contains the pk_u 2 ) to the AP.
  • the AP may verify the policy for data storage at a third party regarding the user u 2 , and if the verification result is positive, the AP may generate re-encryption information for the user u 2 (if it is not available) .
  • the policy for data storage at a third party regarding eligible data holders may be an access policy containing of public key information for PRE of eligible data holders, and may be generated by the data owner u 1 in step 212 and sent to the CSP in step 214 and sent to the AP in step 228, or sent to the AP in another secure way.
  • the AP may generate a rk_AP->u 2 by calling RG (pk_AP, sk_AP, pk_u 2 ) (if it is not available) . Then, in step 232, the AP may issue the re-encryption information to the CSP. For example, the AP may issue the rk_AP->u 2 to the CSP for example by using a secure channel.
  • the CSP may re-encrypt the CK1_u 1 with the re-encryption information.
  • the CSP may inform the re-encrypted CK1_u 1 (i.e. the E (pk_u 2 , DEK1_u 1 ) ) to the user u 2 .
  • the user u 2 may send acknowledgement to the CSP. Then, in step 238, the user u 2 may decrypt the re-encrypted CK1_u 1 (i.e. the E (pk_u 2 , DEK1_u 1 )) with its secret key sk_u 2 (e.g., by callingD (sk_u 2 , E (pk_u 2 , DEK1_u 1 )) .
  • the CSP may contact the data owner u 1 for deduplication.
  • the CSP may send the data identifier of the data M (e.g., the H (M)) and public key information for ABE of the user u 2 (e.g., the Cert (PK_u 2 ) which contains the PK_u 2 ) to the user u 1 .
  • M the data identifier of the data M
  • public key information for ABE of the user u 2 e.g., the Cert (PK_u 2 ) which contains the PK_u 2
  • the user u 1 may verify the user u 2 ’s eligibility for data storage at a third party, and if the verification result is positive, the user u 1 may generate a personalized attribute secret key for the user u 2 .
  • the user u 1 may verify the Cert (PK_u 2 ) , and then generate a sk_ (ID, u 1 , u 2 ) by calling IssueIDSK (ID, SK_u 1 , PK_u 2 ) .
  • the IssueIDSK algorithm may check whether PK_u 2 is an eligible attribute ID.
  • the user u 1 may issue the personalized attribute secret key for the user u 2 and optionally the encrypted DEK2 to the user u 2 .
  • the user u 1 may issue the sk_ (ID, u 1 , u 2 ) and optionally the CK2_u 1 to the user u 2 (using a secure channel or PKC) .
  • PKC secure channel
  • the user u 2 may decrypt the encrypted DEK2 based on the personalized attribute secret key for the user u 2 , and combine the obtained DEK2 and DEK1 to get the DEK.
  • the user u 2 may decrypt the CK2_u 1 by calling DecryptKey (CK 2 _u 1 , A, SK_u 2 , sk_ (ID, u 1 , u 2 ) ) to get the DEK2_u 1 , and combine the DEK1_u 1 from step 238 and the DEK2_u 1 by calling CombineKey (DEK1_u 1 , DEK2_u 1 ) to get the DEK_u 1 .
  • the user u 2 may decrypt the CT_u 1 with the obtained DEK_u 1 without saving duplicated data at the CSP.
  • the user u 1 may inform the success of data deduplication to the CSP.
  • the user u 1 may send the Cert (PK_u 2 ) and the H (M) to the CSP.
  • the CSP may record the corresponding deduplication information (e.g., the Cert (PK_u2) and the H (M) ) in its system in step 250.
  • the CSP may update the deduplication record on the hash information H (M) for the user u 2 .
  • both users u 1 and u 2 can access the same data M saved at the CSP freely.
  • the user u 1 may use the DEK_u 1 directly, and the user u 2 may obtain the DEK_u 1 in step 246.
  • FIG. 3 depicts a flowchart of an overall system process for data deduplication with an authorized party’s control according to an embodiment of the present disclosure.
  • steps 302a and 302b which are similar to steps 202a and 202b, the key pair (PK_u i , SK_u i ) may be omitted since ABE control is not needed.
  • step 312 which is similar to step 212, the DEK1 is set to be DEK, and only the DEK1 is encrypted according to a PRE scheme.
  • step 314 the CK2 may be omitted. Further, the steps for deduplication based on ABE shown in FIG. 2 are omitted.
  • FIG. 4 depicts a flowchart of an overall system process for data deduplication with a data owner’s control according to an embodiment of the present disclosure.
  • steps 402a and 402b which are similar to steps 202a and 202b, the key pair (pk_u i , sk_u i ) may be omitted since PRE control is not needed.
  • the step 402d may be omitted.
  • step 412 which is similar to step 212, the DEK2 is set to be DEK, and only the DEK2 is encrypted according to an ABE scheme.
  • step 414 the CK1 may be omitted.
  • the steps for deduplication based on PRE shown in FIG. 2 are omitted.
  • FIG. 5 depicts a flowchart of an overall system process for data deduplication without any control of an authorized party or a data owner according to an embodiment of the present disclosure.
  • DEK is null
  • Plaintext is saved at the CSP.
  • system setup may be conducted at each user and the CSP.
  • each user u i may get the corresponding certificate of its generated public key Cert (PK’ _u i ) from an authorized third party (e.g., CA in PKI) or the CSP.
  • the user u 1 may generate one key pair (PK’ _u 1 , SK’ _u 1 ) , and get the corresponding certificate of its generated public key Cert (PK’ _u 1 ) .
  • the user u 2 may generate one key pair (PK’ _u 2 , SK’ _u 2 ) , and get the corresponding certificate of its generated public key Cert (PK’ _u 2 ) .
  • the CSP in step 502c, it may receive the public key PK’ _u i , and issue corresponding certificate Cert (PK’ _u i ) to each user u i .
  • the user u 1 may generate hash information of the data M.
  • the hash information may include at least a hash code of the data M.
  • the user u 1 may calculate H (M) , and sign the H (M) with SK’ _u 1 as Sign (H (M) , SK’ _u 1 ) , where Sign () denotes a signature function.
  • the user u 1 may send at least the hash information of the data M.
  • the CSP may check whether the same data M has been saved at the CSP; if no same data has been saved at the CSP, the CSP may request the user u 1 to send the data; and if the same data has been saved at the CSP, the CSP may verify the ownership of the user u 1 , which will be described in detail in the aftermentioned step 520. It should be noted that the steps 508 and 520 are substantially same. Because it is assumed that the first uploader is the data owner, the CSP requests the user u 1 to upload the data in step 508.
  • the CSP may verify the certificate Cert (PK’ _u 1 ) , then verify the signature Sign (H (M) , SK’ _u 1 ) with the PK’ _u 1 , and then check if the same H (M) is recorded at the CSP. Because the user u 1 (i.e. the data owner) is assumed to be the first uploader, the CSP may request the data from the user u 1 in step 510.
  • the user u 1 may calculate index list and hash chain information of the data M.
  • the user u 1 may further sign the HC (M) with the SK’ _u 1 to get Sign (HC (M) , SK’ _u 1 ) .
  • the user u 1 may send at least the index list, the hash chain information and the data M.
  • the hash chain information may include at least the hash chain of the data M.
  • the CSP may store the data package.
  • the user u 2 may later on try to save the same data M at the CSP.
  • the user u 2 may send at least the hash information of the data M.
  • the CSP may check whether the same data M has been saved at the CSP; if no same data has been saved at the CSP, the CSP may request the user to send the data; and if the same data has been saved at the CSP, the CSP may verify the ownership of the user. Because the user u 1 has saved the same data at the CSP, the check result is positive. In this case, the CSP may request the user u 2 to send hash information corresponding to one index or more than one index from the index list. For example, the CSP may randomly select at least one index x. The CSP may further encrypt the at least one index x with the PK’ _u 2 as E (x, PK’_u 2 ) .
  • the CSP may send the index information (e.g., E (x, PK’_u 2 ) ) to the user u2.
  • the index information e.g., E (x, PK’_u 2 )
  • M x the index information
  • the user u 2 may calculate and send the corresponding hash information to the CSP.
  • the corresponding hash information may include at least the hash code corresponding to the at least one index sent from the CSP.
  • the user u 2 may calculate a hash code HC (M x ) , where M x denotes the partial M corresponding to the at least one index x sent from the CSP.
  • the user u 2 may further sign the HC (M x ) with the SK’ _u 2 as Sign (HC (M x ) , SK’ _u 2 ) .
  • the user u 2 may send the HC (M x ) and the Sign (HC (M x ) , SK’ _u 2 ) to the CSP.
  • the CSP may verify the hash information sent from the user u 2 based on the hash chain information which has been saved at the CSP by the user u 1 ; if the verification result is positive, the CSP may update the deduplication record on the hash information H (M) for the user u 2 . In this way, the user u 2 may access the data without saving duplicated data at the CSP.
  • the DEK2 is encrypted with the access policy (i.e. , a CP-ABE scheme is used)
  • the present disclosure is not so limited.
  • KP-ABE may also be used in the embodiments of the present disclosure.
  • FIG. 6 shows a flowchart of a process for data deduplication through multiple CSPs’ cooperation according to an embodiment of the present disclosure.
  • a user may request its local CSP for data storage.
  • the process of step 602 may be similar to the process of steps 204 (or 304, 404, 504) and 206 (or 306, 406, 506) .
  • step 604 the local CSP may check whether data duplication happens. If the check result in step 604 is positive, the local CSP may proceed to step 606 in which the local CSP may perform deduplication by itself or by contacting the data owner and/or the AP based on the policy of deduplication. For example, the policy of deduplication may be determined according to whether any CK is received from the data owner and what kind (s) of CK (s) is (are) received. If no CK is received, the CSP may conduct deduplication by itself. Otherwise, the CSP may contact the AP if the CK1 is received, and contact the data owner if the CK2 is received. Note that the present disclosure is not so limited.
  • the policy of deduplication may also simply be transmitted in the data package in step 214 or 314 or 414 or 514, or may be transmitted to the CSP in another secure way.
  • the policy of deduplication may be pre-determined (e.g., according to an agreement between the user u1 and the CSP) , and stored in advance in the system of the CSP.
  • steps 604 and 606 may be similar to the processes of steps (220, 222, 226, 228, 234, 236, 240 and 250) , or steps (320, 322, 326, 328, 334 and 336) , or steps (520, 522 and 526) .
  • step 604 the local CSP may proceed to step 608 in which the CSP may check with other CSPs if the same data is stored (for example through broadcasting the data storage request of the user) . If there is no positive reply from other CSPs, the local CSP may perform data storage by requesting data package from the user in step 612. On the other hand, if there is a remote CSP’ which replies that the same data has been stored in its storage system, the local CSP may record the user data deduplication information locally in step 614. Note that the local CSP may optionally send a deduplication request to the remote CSP’ to trigger the deduplication.
  • the remote CSP’ may perform deduplication by itself or by contacting the data owner and/or the AP.
  • corresponding keys may be generated by the data owner and/or AP and issued to the user through the cooperation of CSP and CSP’ (for example, the CSP’ may contact the user via the CSP) .
  • step 616 may be similar to the processes of steps (220, 222, 226, 228, 234, 236, 240 and 250) , or steps (320, 322, 326, 328, 334 and 336) , or steps (520, 522 and 526) , except that in step 616, the CSP’ may directly proceed to challenge from the hash chain since the same data has been determined to be saved on the CSP’ in step 610.
  • FIG. 7 shows a flowchart of a process for data deletion according to an embodiment of the present disclosure.
  • the user u may send a data deletion request to its local CSP.
  • the data deletion request may include at least the hash information of the data M.
  • the user u may send the H (M) and Sign (H (M) , SK’ _u) to the local CSP.
  • the CSP may verify the ownership of the user u, and if the verification result is positive, the CSP may delete the storage record of the user u and block its future access to the data M.
  • the process for verifying the ownership of the user u may be similar to the process for verifying the ownership in steps (220, 222 and 226) .
  • step 706 the CSP may check if the data is locally saved. If the check result is positive in step 706, the CSP may check whether the data deduplication record is empty (i.e. , no user saves such data in the CSP any more) in step 718. If the check result in step 718 is positive, the CSP may delete the data. On the other hand, if the check result in step 718 is negative, the CSP may contact the data owner for conducting DEK update which will be described later with reference to FIG. 9. If the user u is the data owner, the CSP may inquire the user u whether to decide to continue deduplication control, as described below with reference to FIG. 8.
  • the local CSP may contact a remote CSP’ that really stores the data in step 708.
  • the CSP may transfer the data deletion request to the CSP’ .
  • the CSP’ may delete the storage record of the user u and block its future access to the data M.
  • the CSP’ may check if the data deduplication record is empty (i.e. , no user saves such data in the CSP’ a ny more) . If the check result is positive in step 712, the CSP’ may delete the data in step 714.
  • the CSP’ may contact the data owner in step 714 for conducting DEK update which will be described later with reference to FIG. 9. Likewise, if the user u is the data owner, the CSP’ may also inquire the user u whether to decide to continue deduplication control, as described below with reference to FIG. 8.
  • FIG. 8 shows a flowchart of a process for continuous data deduplication control according to an embodiment of the present disclosure.
  • the data owner deletes its data at the CSP, but still there are other eligible data holders storing the same data at the CSP.
  • the CSP inquires the data owner about continuous deduplication control.
  • the CSP may perform re-encryption on CK1’ using the re-encryption keys of all eligible users, and update the deduplication record of the underlying data in step 808.
  • CSP may provide the CT’ and the re-encrypted CK1’ to the eligible data user in step 810.
  • FIG. 8 only illustrates one solution of continuous deduplication control.
  • CSP may request a new delegate from existing data holders, or select one of them (e.g., based on the duration of data storage and/or user willingness) .
  • the new delegate will generate a new DEK’ and perform storage update by applying the new DEK’ . This process is similar to the DEK update as described below with reference to FIG. 9.
  • FIG. 9 shows a flowchart of an overall system process for updating data encryption key and ciphertext according to an embodiment of the present disclosure.
  • the data owner (or an eligible data holder) u 1 may generate a new data encryption key DEK’ , encrypt the data M with the DEK’ , separate the DEK’ into a DEK1’ and a DEK2’ , encrypt the DEK1’ a ccording to a PRE scheme, and encrypt the DEK2’ a ccording to an ABE scheme.
  • the user u 1 may then call SeparateKey (DEK’ _u 1 ) to get two random parts of DEK’ _u 1 : DEK1’ _u 1 and DEK2’ _u 1 .
  • the user u 1 may encrypt the DEK2’ _u 1 with the pk_ (ID, u 1 ) by calling EncryptKey (DEK2’ _u 1 , A, pk_ (ID, u 1 ) ) to get CK2’ _u 1 .
  • the user u 1 may then encrypt DEK1’ _u 1 with the pk_AP to get CK1’ _u 1 by calling E (pk_AP, DEK1’ _u 1 ) .
  • the user u 1 may send the hash and/or hash chain information, the newly encrypted data, the newly encrypted DEK1 and the newly encrypted DEK2.
  • the hash or hash chain information may include at least the hash code or hash chain of the data M.
  • the CSP may validate the eligibility of the user u 1 and store the DP1’ .
  • the CSP may verify the Sign (H (M) , SK’ _u 1 ) and/or Sign (HC (M) , SK’ _u 1 ) with the PK’ _u 1 to validate the eligibility of the user u 1 .
  • the CSP may send the public key information for PRE of any eligible data holders (e.g., the user u 2 ) to the AP if rk_AP->u 2 is not available.
  • the CSP may send the certificate Cert (pk_u 2 ) (that contains pk_u 2 ) to the AP.
  • the AP may verify the policy for data storage at a third party regarding the user u 2 , and if the verification result is positive, the AP may generate re-encryption information for the user u 2 (if it is not available) .
  • the AP may generate a rk_AP->u 2 by calling RG (pk_AP, sk_AP, pk_u 2 ) (if it is not available) .
  • the AP may issue the re-encryption information to the CSP.
  • the AP may issue the rk_AP->u 2 to the CSP for example by using a secure channel.
  • the CSP may re-encrypt the CK1’ _u 1 with the re-encryption information.
  • the CSP may inform the re-encrypted CK1’ (i.e. the E (pk_u 2 , DEK1’ _u 1 ) ) and the new encrypted DEK2’ (i.e. CK2’ _u 1 ) to the user u 2 .
  • the user u 2 may send acknowledgement to the CSP.
  • the user u 1 may issue the personalized attribute secret key for the user u 2 (if it is not sent before) to the user u 2 .
  • the user u 1 may issue the sk_ (ID, u 1 , u 2 ) (if it is not sent before) to the user u 2 (using a secure channel or PKC) .
  • step 946 the user u 2 may decrypt the CK2’ _u 1 (from step 936) for example by calling DecryptKey (CK 2 ’ _u 1 , A, SK_u 2 , sk_ (ID, u 1 , u 2 ) ) to get the DEK2’ _u 1 , decrypt the re-encrypted DEK1’ _u 1 (i.e.
  • the E (pk_u 2 , DEK1’ _u 1 ) ) with its secret key sk_u 2 e.g., by calling D (sk_u 2 , E (pk_u 2 , DEK1’ _u 1 ) ) , and combine the DEK1’ _u 1 and the DEK2’ _u 1 by calling CombineKey (DEK1’ _u 1 , DEK2’ _u 1 ) to get the DEK’ _u 1 .
  • the user u 2 may access the newly encrypted data CT’ _u 1 with the DEK’ _u 1 .
  • the CSP may send the data identifier of the data M (e.g., the H (M) ) and the public key information for ABE of eligible data holders (e.g., the Cert (PK_u 2 ) which contains the PK_u 2 ) to the user u 1.
  • M the data identifier of the data M
  • PK_u 2 the public key information for ABE of eligible data holders
  • FIG. 9 only illustrates one scenario where both data owner and AP deduplication control are needed.
  • FIG. 10 shows a flowchart of a process for managing data storage in a user device according to an embodiment of the present disclosure.
  • the process may be executed by a user device to implement the functions of the present disclosure.
  • a DEK may be set to have a null value or a non-null value (for example, according to different storage scenarios and/or deduplication policies) .
  • it may be determined whether the DEK has a null value. If it is determined in step 1004 that the DEK has a null value, a data may be transmitted to a data center in the communication network for storing the data in the data center. On the other hand, if it is determined in step 1004 that the DEK has a non-null value, the data may be encrypted with the DEK in step 1008.
  • the DEK may be separated to a first DEK and a second DEK (for example, according to different storage scenarios and/or deduplication policies) , where the first and second DEKs each has a null value or a non-null value.
  • the first DEK may be encrypted according to a proxy re-encryption (PRE) scheme if the first DEK has a non-null value
  • the second DEK may be encrypted according to an attribute based encryption (ABE) scheme if the second DEK has a non-null value.
  • PRE proxy re-encryption
  • ABE attribute based encryption
  • step 1014 the encrypted data, the encrypted first DEK if any, and the encrypted second DEK if any, may be transmitted to the data center for storing them in the data center.
  • the process of steps 1002-1014 may be similar to the process of steps (212, 214) or (312, 314) or (412, 414) or (512, 514) .
  • a personalized attribute secret may be generated and issued to an eligible user in step 1016, if a deduplication request is received.
  • the process of step 1016 may be similar to the process of steps (242, 244) or (442, 444) .
  • step 1018 as an eligible holder of another data, a re-encrypted DEK1’ for the another data, an encrypted DEK2’ for the another data and a personalized attribute secret key may be received, decryption may be conducted to obtain DEK1’ and DEK2’ , and the DEK1’ and DEK2’ may be combined to obtain DEK’ for data deduplication.
  • the process of step 1018 may be similar to the process of steps (238, 246) or 338 or 446.
  • FIG. 11 shows a flowchart of a process for managing data storage in a communication network according to an embodiment of the present disclosure.
  • the process may be executed by a data center to implement the functions of the present disclosure.
  • a data storage request may be received from a user.
  • the process of step 1102 may be similar to the process of steps (206, 218) or (306, 318) or (406, 418) or (506, 518) .
  • it may be determined whether the same data has been stored in the data center.
  • an encrypted data, an encrypted first data encryption key (DEK) if any, and an encrypted second DEK if any, or the data may be received from a first device and stored in the data center, wherein the encrypted data is generated by encrypting the data with a DEK, the DEK is separated into the first DEK and the second DEK, the first DEK and the second DEK each has a null value or a non-null value, the encrypted first DEK is generated by encrypting the first DEK according to a proxy re-encryption (PRE) scheme, and the encrypted second DEK is generated by encrypting the second DEK according to an attribute based encryption (ABE) scheme in step 1106.
  • the process of steps 1104 and 1106 may be similar to the process of steps (208, 210, 216) or (308, 310, 316) or (408, 410, 416) or (508, 510, 516) .
  • step 1104 it may determine whether AP deduplication control is needed (for example according to whether the encrypted first DEK exists in the data received from the first device) in step 1108. If it is determined in step 1108 that no AP deduplication control is needed, the process may proceed to step 1112. On the other hand, if it is determined in step 1108 that AP deduplication control is needed, an AP may be contacted to conduct deduplication according to a PRE scheme.
  • the process of steps 1108 and 1110 may be similar to the process of steps (228, 232, 234, 236) or (328, 332, 334, 336) .
  • step 228 or 328 because it is determined that AP deduplication control is needed (for example according to the fact that the encrypted first DEK exists in the data received from the first device) , the AP may be contacted to conduct deduplication.
  • step 232 or 332 a re-encryption key may be received from the AP.
  • step 234 or 334 the encrypted first DEK may be re-encrypted with the re-encryption key.
  • step 236 or 336 the re-encrypted first DEK may be issued to an eligible data holder.
  • step 1112 it may be determined whether data owner deduplication control is needed (for example according whether the encrypted second DEK exists in the data received from the first device) . If it is determined in step 1112 that no data owner deduplication control is needed, the process may end in step 1116. On the other hand, if it is determined in step 1112 that data owner deduplication control is needed, a data owner may be contacted to conduct deduplication according to an ABE scheme in step 1114. The process of steps 1112 and 1114 may be similar to step 240 or 440. Then, the process may end in step 1116.
  • Scalability The present disclosure can support a large volume of duplicated data storage happened at one CSP, as well as a number of CSPs. Duplication check and deduplication can be handled among a number of CSPs in order to save each one’s storage space.
  • the present disclosure can cooperate with other data access control mechanisms handled by the data owner by introducing control attributes (access policies) into the DEK2 encryption with ABE through policy A update for supporting both deduplication and access control. In this way, it can support digital rights management based on the expectation of the data owner. In addition, it can also cooperate with centralized data access control mechanisms by involving access policies into the check for re-encryption key generation at an authorized party (AP) and/or CK1 re-encryption at CSP. Either distributed control or centralized control or both can be supported by the invention flexibly based on the data owner’s willingness.
  • the present disclosure can obviously save the storage space for a number of CSPs. Only one copy of the same data is stored cross multiple CSPs. Storing deduplication records at each CSP may occupy some storage or memory. Additional duplication check and deduplication process may request some memory and processing cost. But this cost can be ignored comparing with the saving of a big volume of duplicated data storage.
  • FIG. 12 is a simplified block diagram showing an apparatus that are suitable for use in practicing some exemplary embodiments of the present disclosure.
  • the apparatus 1200 may include a data processor (DP) 1210, a memory (MEM) 1220 that stores a program (PROG) 1230, and a communication interface1240 for communicating data with other external devices through wired and/or wireless communication.
  • DP data processor
  • MEM memory
  • PROG program
  • the PROG 1230 is assumed to include program instructions that, when executed by the DP 1210, enable the apparatus 1200 to operate in accordance with the exemplary embodiments of this disclosure, as discussed above. That is, the exemplary embodiments of this disclosure may be implemented at least in part by computer software executable by the DP 1210, or by hardware, or by a combination of software and hardware.
  • the MEM 1220 may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor based memory devices, flash memory, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory.
  • the DP1210 may be of any type suitable to the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs) and processors based on multi-core processor architectures, as non-limiting examples.
  • the various exemplary embodiments may be implemented in hardware or special purpose circuits, software, logic or any combination thereof.
  • some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the disclosure is not limited thereto.
  • firmware or software which may be executed by a controller, microprocessor or other computing device, although the disclosure is not limited thereto.
  • While various aspects of the exemplary embodiments of this disclosure may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
  • the exemplary embodiments of the disclosure may be practiced in various components such as integrated circuit chips and modules. It should thus be appreciated that the exemplary embodiments of this disclosure may be realized in an apparatus that is embodied as an integrated circuit, where the integrated circuit may comprise circuitry (as well as possibly firmware) for embodying at least one or more of a data processor, a digital signal processor, baseband circuitry and radio frequency circuitry that are configurable so as to operate in accordance with the exemplary embodiments of this disclosure.
  • exemplary embodiments of the disclosure may be embodied in computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other device.
  • the computer executable instructions may be stored on a computer readable medium such as a hard disk, optical disk, removable storage media, solid state memory, RAM, etc.
  • the function of the program modules may be combined or distributed as desired in various embodiments.
  • the function may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA) , and the like.
  • FPGA field programmable gate arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

Method and apparatus are disclosed for heterogeneous data storage management in cloud computing. According to some embodiments, a method for managing data storage in a communication network comprises: receiving at a data center in the communication network from a first device, a request for storing a data in the data center; checking whether the same data has been stored in the data center; in response to a check result that no same data has been stored in the data center, receiving from the first device a data package containing at least the data in plaintext or ciphertext (CT) in response to a check result that the same data has been stored in the data center, obtaining a deduplication policy for the data; when the deduplication policy indicates deduplication to be controlled by both or either of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner, contacting both or either of the AP and the data owner, or only the AP, or only the data owner to conduct deduplication for the data; and when the deduplication policy indicates deduplication to be controlled by none of the AP and the data owner, conducting deduplication for the data at the data center. In some embodiments, the data package may contain or indicate the deduplication policy, and contain information for data holdership verification. The data center may challenge to ensure the data holdership before contacting to conduct deduplication or conducting deduplication at the data center.

Description

METHOD AND APPARATUS FOR HETEROGENEOUS DATA STORAGE MANAGEMENT IN CLOUD COMPUTING Field of the Invention
 Embodiments of the disclosure generally relate to data storage management in a communication network, and, more particularly, to heterogeneous data storage management in cloud computing.
Background
 Cloud computing is computing in which large groups of remote servers are networked to allow centralized data storage, and online access to computer services or resources. It offers a new way of Information Technology (IT) services by re-arranging various resources (e.g., storage, computing and services) and providing them to users based on their demands. Cloud computing provides a big resource pool by linking network resources together. It has desirable properties, such as scalability, elasticity, fault-tolerance, and pay-per-use. Thus, it becomes a promising service platform, rearranging the structure of IT.
 Storage service is one of the most widely consumed cloud services. Nowadays, various data are stored at cloud, e.g., sensitive personal information, personal data, publicly shared data, limited shared data with a group of people and so on.Particularly, crucial data should be protected at the cloud to prevent from any access from unauthorized parties. Some unimportant data, however, has no such a demand. Thus, managing data storage at cloud in various situations in an efficient and flexible way is an important task for cloud service providers (CSP) .
 Further, for example, duplicated data may be stored at the cloud by the same users or different users, especially for shared data, in the same CSP or cross CSPs. Although cloud storage space is huge, this kind of duplication may greatly waste networking resources, consume a lot of power energy, increase operation cost, or make data management complicated. Thus, economic storage will greatly benefit  CSPs by reducing operation cost and reversely benefit cloud users with reduced service fee.
 In view of this, it would be advantageous to provide a way to allow for efficiently, flexibly and economically managing data storage in cloud computing.
Summary
 This summary is provided to introduce a selection of concepts in a simplified form that are further described below in detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
 According to one aspect of the disclosure, it is provided a method for managing data storage in a communication network, the method comprising: receiving at a data center in the communication network from a first device, a request for storing a data in the data center; checking whether the same data has been stored in the data center; in response to a check result that no same data has been stored in the data center, receiving from the first device a data package containing at least the data in plaintext or ciphertext (CT) ; in response to a check result that the same data has been stored in the data center, obtaining a deduplication policy for the data; when the deduplication policy indicates deduplication to be controlled by both or either of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner, contacting both or either of the AP and the data owner, or only the AP, or only the data owner to conduct deduplication for the data; and when the deduplication policy indicates deduplication to be controlled by none of the AP and the data owner, conducting deduplication for the data at the data center.
 According to another aspect of the disclosure, the data package further contains an index list and a hash chain information, the index list including a plurality of indexes each indicating a specific part of the data, the hash chain information including a plurality of hash information each corresponding to one index; wherein contacting to conduct deduplication or conducting deduplication for the data  comprises: requesting the first device to transmit a hash information corresponding to at least one index from the index list; verifying whether the first device holds the data based on the hash information from the first device corresponding to the requested at least one index; and in response to a positive verification result, contacting to conduct deduplication or recording a deduplication information of the data for the first device.
 According to another aspect of the disclosure, obtaining the deduplication policy for the data comprises reading the deduplication policy stored in advance in the data center, or receiving the deduplication policy from the data owner, or determining the deduplication policy according to the data package.
 According to another aspect of the disclosure, determining the deduplication policy comprises: when the data package further contains a first cipherkey (CK) and a second CK being not equal to each other, determining deduplication to be controlled by both of the AP and the data owner, the first and second CKs being generated by separating a data encryption key (DEK) into a first DEK and a second DEK and encrypting the first and second DEKs respectively, the DEK being used for encrypting the data to obtain the CT; when the data package further contains the first and second CKs being equal to each other, determining deduplication to be controlled by either of the AP or the data owner; when the data package further contains only the first CK or only the second CK, determining deduplication to be controlled by only the AP or only the data owner; and when the data package contains no CK, determining deduplication to be controlled by none of the AP and the data owner.
 According to another aspect of the disclosure, contacting the AP to conduct deduplication for the data comprises: receiving a re-encryption key for the first device from the AP when it is not available; re-encrypting the first CK with the re-encryption key according to a proxy re-encryption (PRE) scheme; and transmitting the re-encrypted first CK to the first device such that the first device can decrypt the re-encrypted first CK with a secret key of the first device.
 According to another aspect of the disclosure, contacting the data owner to conduct deduplication for the data comprises: transmitting an attribute identity (ID) of the first device to the data owner such that the data owner can issue an attribute secret key for the first device when it is eligible to decrypt the second CK according to an attribute based encryption (ABE) scheme.
 According to another aspect of the disclosure, the method further comprises: in response to a check result that no same data has been stored in the data center, requesting at least one further data center to check whether the same data has been stored in it; in response to a positive reply from the at least one further data center, recording a deduplication information of the data for the first device, wherein the at least one further data center is able to conduct deduplication for the data; in response to a negative reply from the at least one further data center, performing data storage accordingly.
 According to another aspect of the disclosure, the method further comprises: receiving at the data center from a second device, a request for deleting a data; checking whether the data is stored by the second device in the data center; in response to a positive check result, deleting a record of storage of the data for the second device; deleting the data when a deduplication record for the data is empty; and notifying an owner of the data for updating the CT when the deduplication record for the data is not empty; and in response to a negative check result, contacting another data center that stores the data, wherein the another data center is able to delete a record of storage of the data for the second device.
 According to another aspect of the disclosure, the method further comprises: notifying the owner for updating the CT comprises: inquiring whether the owner decides to continue deduplication control; in response to a positive decision, cooperating with the data owner to update the CT according to the deduplication policy of the data; in response to a negative decision, requesting another holder of the data for updating the CT, or cooperating with the data owner to update the CT  according to a new deduplication policy, the new deduplication policy indicating deduplication to be controlled by only the AP.
 According to another aspect of the disclosure, the method further comprises: in response to a request for updating the CT of a data, obtaining the deduplication policy for the data; when the deduplication policy indicates that AP deduplication control is needed, re-encrypting the updated first CK with the re-encryption key according to a PRE scheme; and transmitting the re-encrypted updated first CK to the first device such that the first device can decrypt the re-encrypted updated first CK with a secret key of the first device; when the deduplication policy indicates that a deduplication control by the data owner is needed, informing the data owner the data identifier and the public key information of the data holder according to a ABE scheme when necessary in order to allow the data owner to perform data deduplication by issuing a secret key to the first device that can decrypt the updated second CK.
 According to another aspect of the disclosure, it is provided a method for managing data storage in a user device, the method comprising: transmitting at the user device, a request for storing a data to a data center; in response to a request for the data from the data center, transmitting a data package containing at least the data in plaintext or ciphertext (CT) to the data center, wherein a deduplication policy for the data is contained in the data package or can be determined according to the data package, the deduplication policy indicating deduplication to be controlled by both or either or none of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner; in response to a deduplication request for the data from the data center or at least one further data center, issuing an attribute secret key to an eligible data holder according to an attribute based encryption (ABE) scheme for conducting deduplication.
 According to another aspect of the disclosure, the method further comprises: transmitting in the data package an index list and a hash chain information for verifying holdership of the data for an eligible data holder, the index list including a  plurality of indexes each indicating a specific part of the data, the hash chain information including a plurality of hash information each corresponding to one index.
 According to another aspect of the disclosure, the method further comprises: transmitting a request for storing a second data to the data center; in response to a request for a hash information corresponding to at least one index from the data center, transmitting a calculated hash information corresponding to the at least one index to the data center for verifying the holdership of the second data.
 According to another aspect of the disclosure, the method further comprises: when the deduplication policy indicates deduplication to be controlled by both of the AP and the data owner, transmitting in the data package a first cipherkey (CK) and a second CK being not equal to each other, the first and second CKs being generated by separating a data encryption key (DEK) into a first DEK and a second DEK and encrypting the first and second DEKs respectively, the DEK being used for encrypting the data to obtain the CT; when the deduplication policy indicates deduplication to be controlled by either of the AP or the data owner, transmitting in the data package the first and second CKs being equal to each other; when the deduplication policy indicates deduplication to be controlled by only the AP or only the data owner, transmitting in the data package only the first CK or only the second CK;and when the deduplication policy indicates deduplication to be controlled by none of the AP and the data owner, transmitting the plaintext in the data package.
 According to another aspect of the disclosure, the first DEK is encrypted with a public key of the AP according to a proxy re-encryption (PRE) scheme; and wherein the second DEK is encrypted based on an access policy, the access policy containing user identities (IDs) of users eligible for holding the data.
 According to another aspect of the disclosure, the deduplication request for the data contains a user ID information; wherein issuing the attribute secret key for conducting deduplication comprises: verifying whether the user ID information  represents a user eligible for holding the data; and in response to a positive verification result, generating the attribute secret key based on the user ID information.
 According to another aspect of the disclosure, the method further comprises: receiving a re-encrypted first CK for the second data from the data center; decrypting the re-encrypted first CK with a private key of the user device to obtain the first DEK; receiving an attribute secret key from an owner of the second data, and receiving the second CK for the second data from the owner of the second data or the data center; decrypting the second CK with the attribute secret key to obtain the second DEK; combining the first and second DEKs to obtain the DEK for deduplication.
 According to another aspect of the disclosure, the method further comprises: transmitting at the user device, a request for deleting a data to the data center; in response to a request for a hash information corresponding to at least one index from the data center, transmitting a calculated hash information corresponding to the at least one index to the data center for verifying the holdership of the data; in response to a request to update the CT from the data center or at least one further data center, updating the CT according to a deduplication policy of the data.
 According to another aspect of the disclosure, the method further comprises: when continuous deduplication control is needed, updating the CT according to an original deduplication policy of the data; and when no continuous deduplication control is needed, updating the CT according to a new deduplication policy, the new deduplication policy indicating deduplication to be controlled by only the AP.
 According to another aspect of the disclosure, the method further comprises: transmitting a request for updating a CT of a data to the data center, wherein a deduplication policy for the data is contained in the request or can be determined according to the request, the deduplication policy indicating deduplication to be controlled by both or either of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner or none; when the deduplication policy indicates  that data owner deduplication control is needed, issuing an attribute secret key to an eligible data holder according to an attribute based encryption (ABE) scheme for conducting deduplication when the attribute secret key is not sent before.
 According to another aspect of the disclosure, the method further comprises: receiving a re-encrypted updated first CK from the data center; decrypting the re-encrypted updated first CK with a private key of the user device to obtain the updated first DEK; receiving an attribute secret key from an owner of the data when it is not available, and receiving the updated second CK from the data center or the data owner; decrypting the updated second CK with the attribute secret key to obtain the updated second DEK; combining the updated first and second DEKs to obtain the updated DEK for deduplication.
 According to another aspect of the disclosure, it is provided an apparatus comprising means configured to perform all steps of any one of the above described methods.
 According to another aspect of the disclosure, it is provided an apparatus comprising: at least one processor; and at least one memory including computer-executable code, wherein the at least one memory and the computer-executable code are configured to, with the at least one processor, cause the apparatus to perform all steps of any one of the above described methods.
 According to another aspect of the disclosure, it is provided a computer program product comprising at least one non-transitory computer-readable storage medium having computer-executable program code stored therein, the computer-executable code being configured to, when being executed, cause an apparatus to operate according to any one of the above described methods.
 These and other objects, features and advantages of the disclosure will become apparent from the following detailed description of illustrative embodiments thereof, which are to be read in connection with the accompanying drawings.
Brief Description of the Drawings
 FIG. 1 shows an exemplary system in which at least one embodiment of the present disclosure may be implemented;
 FIG. 2 depicts a flowchart of an overall system process for data deduplication with heterogeneous control according to an embodiment of the present disclosure;
 FIG. 3 depicts a flowchart of an overall system process for data deduplication with an authorized party’s control according to an embodiment of the present disclosure;
 FIG. 4 depicts a flowchart of an overall system process for data deduplication with a data owner’s control according to an embodiment of the present disclosure;
 FIG. 5 depicts a flowchart of an overall system process for data deduplication without any control of an authorized party or a data owner according to an embodiment of the present disclosure;
 FIG. 6 shows a flowchart of a process for data deduplication through multiple cloud service providers’ cooperation according to an embodiment of the present disclosure;
 FIG. 7 shows a flowchart of a process for data deletion according to an embodiment of the present disclosure;
 FIG. 8 shows a flowchart of a process for continuous data deduplication control according to an embodiment of the present disclosure;
 FIG. 9 shows a flowchart of an overall system process for updating data encryption key and ciphertext according to an embodiment of the present disclosure;
 FIG. 10 shows a flowchart of a process for managing data storage in a user device according to an embodiment of the present disclosure;
 FIG. 11 shows a flowchart of a process for managing data storage in a communication network according to an embodiment of the present disclosure; and
 FIG. 12 is a simplified block diagram showing an apparatus that are suitable for use in practicing some exemplary embodiments of the present disclosure.
Detailed Description
 For the purpose of explanation, details are set forth in the following description in order to provide a thorough understanding of the embodiments disclosed. It is apparent, however, to those skilled in the art that the embodiments may be implemented without these specific details or with an equivalent arrangement.
 As mentioned above, in the context of cloud computing, various data are stored at cloud, e.g., sensitive personal information, personal data, publicly shared data, limited shared data with a group of people and so on. Some crucial data should be protected at the cloud against any access from unauthorized parties and even cloud service provider (CSP) , some are not necessary. Further, Duplicated data may be stored at the cloud by the same users or different users, especially for shared data, in the same CSP or cross CSPs. The same data may be stored in the format of either plaintext or ciphertext (encrypted using different keys known by different data holders) . Duplicated data storage greatly wastes storage resources, unnecessarily consumes power energy, increases operation cost of cloud service providers, and complicates data management at the cloud (e.g., searching data may become complicated) .
 On the other hand, data owners or holders may not trust CSP fully to handle their data. They sometimes would like to manage data by themselves regarding access, storage and usage (as one part of digital rights management) . But due to complexity and availability, it may not be convenient for them to manage their data always or personally manage the data with low cruciality. In addition, from the compatibility point of view, it is highly expected that data deduplication can cooperate well with other data access control mechanisms. That is, the same data (either in encryption status or not) is only saved once at the cloud, but can be accessed by different users  based on the policies of data owners and data holders (i.e. , eligible data users who hold original data) .
 The embodiments of the present disclosure can provide a holistic and heterogeneous method for securely managing data storage in cloud computing to flexibly support data deduplication controlled by either data owner or a trusted third party or both or none in order to satisfy the demand on data security and privacy and at the same time save storage spaces in various data storage scenarios. Hereinafter, the embodiments of the present disclosure will be described with reference to FIGs. 1-12. 
 FIG. 1 shows an exemplary system in which at least one embodiment of the present disclosure may be implemented. As shown, the system 100 may comprise a plurality of user devices 110-1~110-n, data centers 120 and 120’ , and an authorized party (AP) 130. For any one of the user devices 110-1~110-n, it may enable its user to upload and save data at the data center 120 or 120’ . When the data is not crucial, the data may be uploaded and saved in a format of plaintext, and when the data is crucial, the data may be uploaded and saved in a format of ciphertext. For example, the users of the user devices 110-1~110-n may hold the same one data, and at least one of these data holders may be an owner of the data. When a number of data holders save the same plain or encrypted data at the data center 120 or 120’ , data duplication may happen. The data owner may decide freely to allow data deduplication to be controlled by the data owner, or by the AP 130, or by both, or by none. The user device 110 may be any fixed or mobile device capable of conducting wired and/or wireless communication, such as a desktop computer, a laptop computer, a mobile phone, a tablet computer, a personal digital assistant (PDA) , and so on.
 The data center 120 or 120’ may offer data storage services. When a number of data holders save the same plain or encrypted data at the data center 120 or 120’ , the data center 120 or 120’ may conduct data deduplication by itself, or cooperate with the data owner and/or the AP 130 to conduct data deduplication. The data center 120 and 120’ may cooperate under a business agreement to save storage space through deduplication. Although two data centers 120 and 120’ are shown in FIG. 1,  there may be more data centers in the system 100. The data center 120 and 120’ may be provided for example by different CSPs (for example, a local CSP and a remote CSP) . Alternatively, the data center 120 and 120’ may be implemented through any other data storage technologies such as traditional file hosting service technology.
 The AP 130 may manage the access to the data stored at the data center 120 or 120’ . For example, the AP 130 may handle data deduplication on behalf of the data owner or cooperate with the data owner to conduct data deduplication via the data center 120 or 120’ . The AP 130 may play as an access management center. The AP is a party that doesn’t collude with any data centers and is trusted by the data holders to handle data deduplication. The AP may be for example a specially established organization.
 The communication network by which the user devices 110-1~110-n, the data center 120 and 120’ , and the AP 130 communicate with each other may include wired and/or wireless networks. These network may include, but not limited to, a local area network (LAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public data network (e.g., the Internet) , a self-organized mobile network, or any other suitable packet-switched network, such as a commercially owned, proprietary packet-switched network, e.g., a proprietary cable or fiber-optic network. The wireless network may be, for example, a cellular network and may employ various technologies including enhanced data rates for global evolution (EDGE) , general packet radio service (GPRS) , global system for mobile communications (GSM) , Internet protocol multimedia subsystem (IMS) , universal mobile telecommunications system (UMTS) , etc. , as well as any other suitable wireless medium, e.g., worldwide interoperability for microwave access (WiMAX) , wireless local area network (WLAN) , Long Term Evolution (LTE) networks, code division multiple access (CDMA) , wideband code division multiple access (WCDMA) , wireless fidelity (WiFi) , satellite, mobile ad-hoc network (MANET) , delay tolerant networks, and so on.
 FIG. 2 depicts a flowchart of an overall system process for data deduplication with heterogeneous control according to an embodiment of the present disclosure. It should be noted that although some embodiments of the present disclosure will be described hereinafter with reference to FIGs. 2-9 in which the data center is implemented through cloud storage technology, the present disclosure should not be so limited. As mentioned above, one skilled in the art can understand that the principle of the present disclosure can also be applied to a data center which is implemented through any other data storage technologies such as traditional file hosting service technology.
 For better understanding the overall system process, the outline as well as related system keys and algorithms of an exemplary embodiment will be provided at first. It should be noted that for ease of understanding, a user (e.g., a data owner, or a data holder) mentioned hereinafter may denote the user’s device.
 In an exemplary embodiment of the present disclosure, the data owner may be allowed to set a data encryption key (DEK) to be a null value or a non-null value, for example according to different storage scenarios and/or deduplication policies. If the data owner doesn’t want to control data access, the DEK may be set to have a null value. In this case, plaintext may be saved in a CSP, and the CSP may handle deduplication fully. On the other hand, if data access control is needed, the DEK may be set to have a non-null value. The non-null value may be a symmetric secret key. In this case, a ciphertext (CT) may be saved.
 Then, the DEK may be separated into two parts, i.e. DEK1 and DEK2, for example according to different storage scenarios and/or deduplication policies. If the data owner would like to control data deduplication only by itself, the DEK1 may be null, and thus DEK2=DEK. In this case, an attribute-based encryption (ABE) scheme may be used.
 In an ABE system, users may be identified by a set of attributes rather than an exact identity. Each data may be encrypted with an attribute-based access structure, such that only the users whose attributes satisfy the access structure can decrypt the  data. ABE has developed into two branches, key-policy ABE (KP-ABE) and ciphertext-policy ABE (CP-ABE) depending on how attributes and policy are associated with ciphertexts and users’ decryption keys. In CP-ABE, ciphertexts may be encrypted according to an access control policy which is formulated as a Boolean formula over the attributes. The construction assures that only a user whose attributes satisfy the access control policy is able to decrypt the ciphertext with its secret attribute key. In KP-ABE, a user’s secret key may be associated with a set of attributes.
 As an exemplary example, the DEK2 may be encrypted to obtain a cipherkey CK2, based on an access policy which contains eligible data holders’ identities (ID) . That is, an eligible data holder’s ID is used as an attribute. In this way, the eligible data holder’s attribute satisfies the access policy, and thus can decrypt the CK2.
 Further, if the data owner would like to allow data deduplication to be only controlled by AP, the DEK2 may be null, and thus DEK1=DEK. In this case, a proxy re-encryption (PRE) scheme may be used. PRE enables a delegator to implement fine-grained policies with one key pair without any additional trust on a proxy. In a PRE system, a CT for a delegator may be generated with the delegator’s public key, and the delegator may assign a re-encryption key to a proxy for an eligible data holder for data access, then the proxy may re-encrypt the CT with the re-encryption key, such that the re-encrypted CT can be decrypted with a secret key of an eligible data holder (i.e. , delegatee) .
 As an exemplary example, the AP may act as a delegator, a CSP may act as a proxy, and an eligible data holder may act as a delegatee. The data owner may encrypt the DEK1 with the AP’s public key to obtain a CK1, and transmit the CK1 to the CSP. The CSP may re-encrypt the CK1 with a re-encryption key assigned by the AP, and transmit the re-encrypted CK1 to an eligible data holder. In this way, the eligible data holder may decrypt the re-encrypted CK1 with its own delegatee secret key.
 Further, if the data owner would like to control data deduplication by both the AP and the data owner, the DEK1 and the DEK2 may be both non-null. In this case,  both ABE and PRE schemes may be used, and the DEK1 and DEK2 may be aggregated to obtain the DEK. Further, if the data owner would like to control data deduplication by either of the data owner or AP, DEK1=DEK2=DEK. In this case, deduplication may be conducted by contacting either the data owner or AP.
 In this way, the present disclosure can propose two-dimensional storage management on cloud data deduplication by either data owner or an authorized party or both or neither of them. It can be applied into the scenario that cloud data deduplication can be handled by either the data owner or a third trusted party or both or none.
 At the CSP side, a hash code of a duplicated data M may be used as its identifier, which is used to check duplication of data during data uploading and storage. The hash code of the data M, i.e. H (M) may be signed by the data owner or data holder for originality verification performed by the CSP. For example, the H (M) may be signed through public key cryptosystem (PKC) . Meanwhile, a number of hash codes of randomly selected specific parts of the data M may be calculated with their indexes (e.g., the hash code of the first 20.1%of data, the hash code of 21-25%of data) . These hash codes may be called as a hash chain HC (M) of the data M.
 When a data owner/holder tries to store the data M at the CSP, it may send the signed hash code of the data M to the CSP for duplication check. If the duplication check result is positive, the CSP may further verify the ownership of the data holder by challenging the hash chain of the data M (e.g., some specific hash codes in the chain) . If the ownership verification result is positive based on the hash chain verification, the CSP may contact the data owner and/or AP for deduplication based on the policy of the data owner for deduplication.
 Data duplication check may be performed among CSPs. One CSP may save data for other CSPs. If a data holder tries to save the same data in another CSP, duplication check may be performed among CSPs based on their agreement. Duplicated data access from another CSP’s eligible users may be supported by the CSPs.
 The keys for use in an exemplary embodiment of the present disclosure are shown in the table below.
Table 1: System keys
Figure PCTCN2015071013-appb-000001
 The usage of the above system keys will be described in detail in conjunction with the explanation of a number of fundamental algorithms for use in an exemplary embodiment.
 InitiateNode (u) .
The InitiateNode algorithm may be conducted at a user u at system setup, and take as input a node identity u, which is generally a unique node identity. The algorithm may output the following key pairs and certificates:
(1) A public user key PK_u and a secret user key SK_u for ABE.
Suppose the user u is a data owner, and the user u’ is a data holder. For the user u’ , the public user key PK_u’ may be used to issue a secret attribute key for the user u’  (i.e. SK_ (ID, u, u’ ) ) by calling the aftermentioned algorithm IssueIDSK (ID, SK_u, PK_u’ ) .
Each user may maintain a secret key SK_u that is used to issue secret attribute keys to other users based on other user’s identity. It may also be used to generate its own public key of identity attribute (denoted as ID) of the user u -pk_ (ID, u) . The secret user key SK_u may also be used for decryption of a ciphertext encrypted by the PK_u.
(2) A key pair PK’ _u and SK’ _u for public key cryptosystem (PKC) . The SK’ _u may be used for conducting signature generation and for decrypting data that is encrypted with PK’ _u. Accordingly, the PK’ _u may be used for conducting signature verification and for encrypting data.
(3) A key pair pk_u and sk_u for PRE. As mentioned above, there may be three types of parties in a PRE system, i.e. a delegator, a proxy and a delegatee. As an exemplary example, a data holder may be a delegatee. Thus, the pk_u may also be referred to as a delegatee public key, and the sk_u may also be referred to as a delegatee secret key. 
(4) In addition, the PK_u, PK’ _u and pk_u may be certified by an authorized third party (e.g., CA in PKI) or the CSP as Cert (PK_u) , Cert (PK’ _u) and Cert (pk_u) . The Cert (PK_u) , Cert (pk_u) and Cert (PK’ _u) may be verified by the CSP and CSP users. 
 InitiateAP.
In the process of this algorithm, the AP may independently generate pk_AP and sk_AP for PRE, and broadcast the pk_AP through the CSP’s storage service to CSP users. As an exemplary example, the AP may act as a delegator in a PRE system. Thus, the pk_AP may also be referred to as a delegator public key, and the sk_AP may also be referred to as a delegator secret key.
 Encrypt (DEK_u, M) .
The Encrypt algorithm may take as input the data M, the symmetric key DEK_u. The algorithm may encrypt the data M with the DEK_u, and output the ciphertext CT_u. This process may be conducted at the user u to protect its data stored at the CSP with the DEK_u.
 SeparateKey (DEK_u) .
When it is decided that both DEK1_u and DEK2_u are non-null, on input DEK_u, this function may output two parts of keys: DEK1_u and DEK2_u based on e.g., random separation.
 CreateIDPK (ID, SK_u) .
The CreateIDPK algorithm may be executed by the user u (i.e. , the data owner) whenever the user u would like to control its data storage and access at the cloud. The algorithm may check whether the ID (e.g., PK_u) of the user u satisfies policies related to data storage management. For example, it may check whether the ID is an eligible ID of a data owner for managing storage and access of a data. If the ID satisfies the policies, the algorithm may output a public attribute key (denoted pk_(ID, u) ) associated with the ID for the user u, according to an ABE mechanism. Otherwise, the algorithm may output NULL.
It should be noted that the representation of identity attribute is denoted as ID (note that ID can be an anonymous identifier) . For every attribute with representation (ID, u), there is a public key, denoted pk_ (ID, u) , which is generated by the user u and is used to encrypt the symmetric key DEK2 that is a part of the DEK.
 EncryptKey (DEK2_u, A, pk_ (ID, u)) .
The EncryptKey algorithm may take as input the part 2 of the symmetric key DEK2_u, an access policy A and the public key pk_ (ID, u) corresponding to the identity attribute occurring in policies related to data storage management. The algorithm may encrypt DEK2_u with the policy A and output the cipherkey CK2_u. This process may be conducted at the user u to support deduplication of data storage at the CSP.
With respect to the access policy A, for example, a data owner would like other data holders with ID = PK_uj’ (j=1, 2, 3) to share its data storage. In this case, the policy A may be as follows: ID= PK_u’ 1∨PK_u’ 2∨PK_u’ 3. The EncryptKey algorithm may iterate over all j=1, 2, 3, generate for each conjunction a random value R_j and  constructs CK2_j. The cipherkey CK2 may be obtained as a tuple CK=<CK2_1, CK2_2, …, CK2_j>.
 IssueIDSK (ID, SK_u, PK_u’ ) .
Before calling the IssueIDSK algorithm, the eligibility of the user u’ may be checked by checking whether the Cert (PK_u’ ) is a valid identifier certified by a third trusted party or the data owner itself. The Cert (PK_u’ ) may be received by the user u from the user u’ via the CSP, which will be described later with reference to FIG. 2.
Then, if the above check is positive, the IssueIDSK algorithm may be executed by the user u by firstly checking whether the user u’ with a public key PK_u’ is an eligible attribute ID (i.e. , the PK_u’ is an authorized party for holding the data) . For example, it may check whether the PK_u’ s atisfies the access policy A.
If the above check result is positive, the IssueIDSK algorithm may output a secret attribute key SK_ (ID, u, u’ ) for the user u’ . Otherwise, the algorithm may output NULL. The generated SK_ (ID, u, u’ ) may be sent to the user u’ by the user u through a secure channel or using PKC.
It should be noted that the corresponding secret attribute keys for decrypting cipher-key encrypted by the pk_ (ID, u) are personalized for eligible data holders and issued by the data owner u. To prevent collusion, every data holder gets a different secret attribute key that only it can use. A secret attribute key of the attribute ID, issued for an eligible holder u’ by the user u is denoted as sk_ (ID, u, u’ ) .
 DecryptKey (CK2_u, A, PK_u’ , sk_ (ID, u, u’ )) .
The DecryptKey algorithm may take as input a cipherkey produced by the EncryptKey algorithm, an access policy A under which CK2_u was encrypted, and SK_u’ , sk_ (ID, u, u’ ) for the user u’ . The DecryptKey algorithm may decrypt the cipherkey CK2_u and output the corresponding plainkey DEK2_u if the attributes (e.g., the PK_u’ ) are sufficient to satisfy the access policy A. Otherwise, the algorithm may output NULL.
This process may be executed at the user u’ if duplicated storage happens. It firstly checks whether the PK_u’ s atisfies the encryption policy A, and then conducts decryption to get DEK2_u if the check result is positive.
 As mentioned above, a PRE scheme can apply AP to support DEK1 re-encryption. Proxy re-encryption may allow the CSP (i.e. , the proxy) to transform a ciphertext of the DEK1 computed under the AP’s public key into one that can be decrypted using an eligible data holder’s privacy key. During ciphertext transformation referred to as re-encryption, the CSP learns nothing about the underlying plaintext of the DEK1, and thus cannot know the plain data of data holders. The algorithms about a PRE scheme are represented as below:
 E (pk_AP, DEK1_u) .
On input pk_AP and DEK1_u, the algorithm may output a ciphertext CK1=E (pk_AP, DEK1_u) .
 RG (pk_AP, sk_AP, pk_u’ ) .
On input (pk_AP, sk_AP, pk_u’ ) , the re-encryption key generation algorithm, RG, may output a re-encryption key rk_AP→u’ for the proxy CSP.
 R (rk_AP→u’ , CK1) .
On input rk_AP→u’ and the ciphertext CK1, the re-encryption function, R, may output R(rk_AP→u’ , CK1) = E (pk_u’ , DEK1_u) = CK1’ , which can be decrypted using the private key sk_u’ .
 D (sk_u, CK’ 1) .
On input sk_u and the ciphertext CK’ 1, the decryption algorithm D may output the plain key DEK1_u.
 CombineKey (DEK1_u, DEK2_u) .
On input DEK1_u and DEK2_u, this function may output the full key DEK_u through combination.
 Decrypt (DEK_u, CT_u) .
The Decrypt algorithm may take as input the encrypted data CT_u and the symmetric key DEK_u. The algorithm may decrypt the CT_u with the DEK_u and output the plain data M. This process is conducted at data holders to disclose the plain content of stored data at the CSP.
 Now, an overall system process for data deduplication with heterogeneous control according to an embodiment of the present disclosure will be described with reference to FIG. 2. In this process, a user u1 is the real data owner and saves its sensitive personal data M at a CSP with protection using a DEK_u1, while a user u2 is a data holder who tries to save the same data at the CSP. Both the data owner and an AP are needed for deduplication control, and there is only one CSP in the system of FIG. 2.
 In step 202, system setup may be conducted at each user, the CSP and the AP. For each user ui, it may call InitiateNode (ui) to generate three key pairs (PK_ui, SK_ui) , (PK’ _ui, SK’ _ui) , (pk_ui, sk_ui) (i=1, 2, …. ) . Meanwhile, each user uimay get the corresponding certificates of its generated public keys Cert (PK_ui) , Cert (PK’ _ui) and Cert (pk_ui) from an authorized third party (e.g., CA in PKI) or the CSP. For example, in step 202a, the user u1 may generate three key pairs (PK_u1, SK_u1) , (PK’ _u1, SK’ _u1) , (pk_u1, sk_u1) , and get the corresponding certificates of its generated public keys Cert (PK_u1) , Cert (PK’ _u1) and Cert (pk_u1) . As mentioned above, because the user u1 is the data owner, the key pair for PRE, i.e. (pk_u1, sk_u1) and corresponding certificate Cert (pk_u1) may also be omitted. In step 202b, the user u2 may generate three key pairs (PK_u2, SK_u2) , (PK’ _u2, SK’ _u2) , (pk_u2, sk_u2) , and get the corresponding certificates of its generated public keys Cert (PK_u2) , Cert (PK’ _u2) and Cert (pk_u2) .
 For the AP, in step 202d, it may call InitiateAP to generate its key pair (pk_AP, sk_AP) , and broadcast the pk_AP to each user. Further, for the CSP, in step 202c, it may receive respective public keys PK_ui, PK’ _uiand pk_ui, and issue corresponding certificates Cert (PK_ui) , Cert (PK’ _ui) and Cert (pk_ui) to each user ui.
 Then, in step204, the user u1 may generate hash information of the data M. the hash information may include at least a hash code of the data M. For example, the user u1 may calculate H (M) , and sign the H (M) with SK’ _u1 as Sign (H (M) , SK’ _u1) , where Sign () denotes a signature function.
 Then, in step 206, the user u1 may send at least the hash information of the data M. For example, the user u1 may send a package P1= {H (M) , Sign (H (M) , SK’ _u1) , Cert (PK_u1) , Cert (PK’ _u1) , Cert (pk_u1) } to the CSP. For another example, the package may contain at least H (M) , Sign (H (M) , SK’ _u1) , and Cert (PK’ _u1) necessary for the check of data storage duplication.
 Then, in step 208, the CSP may check whether the same data M has been saved at the CSP; if no same data has been saved at the CSP, the CSP may request the user u1 to send the data; and if the same data has been saved at the CSP, the CSP may verify the ownership of the user u1, which will be described in detail in the aftermentioned step 220. It should be noted that the steps 208 and 220 are substantially same. Because it is assumed that the first uploader is the real data owner, the CSP requests the user u1 to upload the data in step 208.
 For example, in step 208, the CSP may verify the certificate Cert (PK’ _u1) , then verify the signature Sign (H (M) , SK’ _u1) with the PK’ _u1, and then check if the same H (M) is recorded at the CSP. Because the user u1 (i.e. the data owner) is assumed to be the first uploader, the CSP may request the data from the user u1 in step 210.
 Then, in step 212, the user u1 may encrypt the data M with a DEK, separate the DEK into a DEK1 and a DEK2, encrypt the DEK1 according to a PRE scheme, and encrypt the DEK2 according to an ABE scheme, and calculate an index list and hash chain information of the data M.
 For example, the user u1 may encrypt the data M for privacy and security protection with a randomly selected symmetric key DEK_u1 to get CT_u1=Encrypt (DEK_u1, M) . The user u1 may then call SeparateKey (DEK_u1) to get two random parts of the DEK_u1: DEK1_u1 and DEK2_u1. The user u1 may encrypt  the DEK2_u1 with a pk_ (ID, u1) by calling EncryptKey (DEK2_u1, A, pk_ (ID, u1)) to get CK1_u1, where pk_ (ID, u1) is generated according to the data storage management policy of the user u1, as mentioned above. The user u1 may then encrypt DEK1_u1 with a pk_AP to get CK1_u1 by calling E (pk_AP, DEK1_u1) .
 In addition, the user u1 may randomly select an index list: IN= {In1, In2, …, Ink} that indicates the special parts of M (e.g., In1 indicates first 1%of the data; In2 indicates first 1.2%of the data) . Furthermore, the user u1 may calculate the hash codes of respective partial M based on the indexes to get HC (M) = {H (M1) , H (M2) , …, H(Mk) } . The user u1 may further sign the HC (M) with the SK’ _u1 to get Sign (HC (M) , SK’ _u1) .
 Then, in step 214, the user u1 may send the index list, the hash chain information, the encrypted data, the encrypted DEK1 and the encrypted DEK2. The hash chain information may include at least the hash chain of the data M. For example, the user u1 may send the data package DP1= {CT_u1, CK1_u1, CK2_u1, IN, HC (M) , Sign (HC (M) , SK’ _u1) } to the CSP through a secure channel. Then, in step 216, the CSP may store the data package.
 Then, in step 218, the user u2may later on try to save the same data M at the CSP. Similarly to step 206, the user u2may send at least the hash information of the data M. For example, the user u2may send a package P2= {H (M) , Sign (H (M) , SK’ _u2) , Cert (PK_u2) , Cert (PK’ _u2) , Cert (pk_u2) } to the CSP. For another example, the package may contain at least H (M) , Sign (H (M) , SK’ _u1) , and Cert (PK’ _u1) necessary for the check of data storage duplication.
 Then, similarly to step 208, in step 220, the CSP may check whether the same data has been saved at the CSP; if no same data has been saved at the CSP, the CSP may request the user to send the data; and if the same data has been saved at the CSP, the CSP may verify the ownership of the user. Because the user u1 has saved the same data at the CSP, the above check result is positive. In this case, the CSP may request the user u2 to send hash information corresponding to at least one index from the index list. For example, the CSP may randomly select one index x or more than one  index. The CSP may further encrypt the index x with the PK’ _u2 as E (x, PK’ _u2) . Then, in step 222, the CSP may send the index information (e.g., E (x, PK’ _u2)) to the user u2.
 Then, in step 224, the user u2 may calculate and send the corresponding hash information to the CSP. The corresponding hash information may include at least the hash information corresponding to the at least one index sent from the CSP. For example, the user u2may calculate a hash code HC (Mx) , where Mx denotes the partial M corresponding to the at least one index x sent from the CSP. The user u2 may further sign the HC (Mx) with the SK’ _u2as Sign (HC (Mx) , SK’ _u2) . Then, the user u2 may send the HC (Mx) and the Sign (HC (Mx) , SK’ _u2) to the CSP. Note that more than one HC (Mx) could be challenged by CSP at this step in order to ensure the holdership of the data.
 Then, in step 226, the CSP may verify the hash information sent from the user u2 based on the hash chain information that has been saved at the CSP by the user u1; if the verification result is positive, the CSP may contact the AP and the user u1 for deduplication. It should be noted that the AP and the user u1 may be contacted simultaneously or sequentially without the order being limited, although it is shown in FIG. 2 that the CSP contact the AP first and then contact the user u1.
 For example, in step 226, the CSP may verify the Sign (HC (Mx) , SK’ _u2) with the PK’ _u2, and check whether the received HC (Mx) is the same as the HC (Mx) that has been saved at the CSP. If the check result is positive, the CSP may proceed to step 228. In step 228, the CSP may send the public key information for PRE of the user u2 to the AP if it is not shared with AP before. For example, the CSP may send the certificate Cert (pk_u2) (that contains the pk_u2) to the AP.
 Then, in step 230, the AP may verify the policy for data storage at a third party regarding the user u2, and if the verification result is positive, the AP may generate re-encryption information for the user u2 (if it is not available) . For example, the policy for data storage at a third party regarding eligible data holders may be an access policy containing of public key information for PRE of eligible data holders, and may  be generated by the data owner u1 in step 212 and sent to the CSP in step 214 and sent to the AP in step 228, or sent to the AP in another secure way. Further, for example, the AP may generate a rk_AP->u2 by calling RG (pk_AP, sk_AP, pk_u2) (if it is not available) . Then, in step 232, the AP may issue the re-encryption information to the CSP. For example, the AP may issue the rk_AP->u2to the CSP for example by using a secure channel.
 Then, in step 234, the CSP may re-encrypt the CK1_u1 with the re-encryption information. For example, the CSP may re-encrypt the CK1_u1 by calling R (rk_AP->u2, E (pk_AP, DEK1_u1) ) = E (pk_u2, DEK1_u1) . Then, in step 236, the CSP may inform the re-encrypted CK1_u1 (i.e. the E (pk_u2, DEK1_u1) ) to the user u2. About E(pk_u2, DEK1_u1) , the user u2may send acknowledgement to the CSP. Then, in step 238, the user u2 may decrypt the re-encrypted CK1_u1 (i.e. the E (pk_u2, DEK1_u1)) with its secret key sk_u2 (e.g., by callingD (sk_u2, E (pk_u2, DEK1_u1)) .
 In step 240, the CSP may contact the data owner u1 for deduplication. For example, the CSP may send the data identifier of the data M (e.g., the H (M)) and public key information for ABE of the user u2 (e.g., the Cert (PK_u2) which contains the PK_u2) to the user u1.
 Then, in step 242, the user u1 may verify the user u2’s eligibility for data storage at a third party, and if the verification result is positive, the user u1 may generate a personalized attribute secret key for the user u2. For example, the user u1 may verify the Cert (PK_u2) , and then generate a sk_ (ID, u1, u2) by calling IssueIDSK (ID, SK_u1, PK_u2) . As mentioned above, the IssueIDSK algorithm may check whether PK_u2is an eligible attribute ID.
 Then, in step 244, the user u1 may issue the personalized attribute secret key for the user u2 and optionally the encrypted DEK2 to the user u2. For example, the user u1 may issue the sk_ (ID, u1, u2) and optionally the CK2_u1 to the user u2 (using a secure channel or PKC) . It should be noted that in a case where the CK2_u1 is shared by the CSP, the user u1 may issue only the personalized attribute secret key for the user u2.
 Then, in step 246, the user u2may decrypt the encrypted DEK2 based on the personalized attribute secret key for the user u2, and combine the obtained DEK2 and DEK1 to get the DEK. For example, the user u2 may decrypt the CK2_u1 by calling DecryptKey (CK2_u1, A, SK_u2, sk_ (ID, u1, u2) ) to get the DEK2_u1, and combine the DEK1_u1 from step 238 and the DEK2_u1 by calling CombineKey (DEK1_u1, DEK2_u1) to get the DEK_u1. In this way, the user u2may decrypt the CT_u1 with the obtained DEK_u1 without saving duplicated data at the CSP.
 In step 248, the user u1 may inform the success of data deduplication to the CSP. For example, the user u1 may send the Cert (PK_u2) and the H (M) to the CSP. After getting this notification, the CSP may record the corresponding deduplication information (e.g., the Cert (PK_u2) and the H (M) ) in its system in step 250. For example, the CSP may update the deduplication record on the hash information H (M) for the user u2. At this moment, both users u1 and u2can access the same data M saved at the CSP freely. The user u1 may use the DEK_u1 directly, and the user u2 may obtain the DEK_u1 in step 246.
 FIG. 3 depicts a flowchart of an overall system process for data deduplication with an authorized party’s control according to an embodiment of the present disclosure. The main difference between the two processes shown in FIGs. 2 and 3 lies in that the separation of the DEK is different. That is, in FIG. 2, DEK1+DEK2=DEK, where both the DEK1 and DEK2 are not null, and thus both the data owner and the AP are needed for deduplication control. In contrast, in FIG. 3, DEK2 is null, DEK1=DEK, which is not null. Thus, the deduplication is controlled by only the AP.
 The details of the differences between the two processes shown in FIGs. 2 and 3 will be provided below. In  steps  302a and 302b which are similar to  steps  202a and 202b, the key pair (PK_ui, SK_ui) may be omitted since ABE control is not needed. Next, in step 312 which is similar to step 212, the DEK1 is set to be DEK, and only the DEK1 is encrypted according to a PRE scheme. Correspondingly, in step  314, the CK2 may be omitted. Further, the steps for deduplication based on ABE shown in FIG. 2 are omitted.
 FIG. 4 depicts a flowchart of an overall system process for data deduplication with a data owner’s control according to an embodiment of the present disclosure. The main difference between the two processes shown in FIGs. 2 and 4 lies in that the separation of the DEK is different. That is, in FIG. 2, DEK1+DEK2=DEK, where both the DEK1 and DEK2 are not null, and thus both the data owner and the AP are needed for deduplication control. In contrast, in FIG. 4, DEK1 is null, DEK2=DEK, which is not null. Thus, the deduplication is controlled by only the data owner.
 The details of the differences between the two processes shown in FIGs. 2 and 4 will be provided below. In  steps  402a and 402b which are similar to  steps  202a and 202b, the key pair (pk_ui, sk_ui) may be omitted since PRE control is not needed. Besides, the step 402d may be omitted. Next, in step 412 which is similar to step 212, the DEK2 is set to be DEK, and only the DEK2 is encrypted according to an ABE scheme. Correspondingly, in step 414, the CK1 may be omitted. Further, the steps for deduplication based on PRE shown in FIG. 2 are omitted.
 FIG. 5 depicts a flowchart of an overall system process for data deduplication without any control of an authorized party or a data owner according to an embodiment of the present disclosure. In this case, DEK is null, and thus Plaintext is saved at the CSP.
 In step 502, system setup may be conducted at each user and the CSP. For each user ui, it may call InitiateNode (ui) to generate one key pair (PK’ _ui, SK’ _ui) (i=1, 2, …. ) . Meanwhile, each user ui may get the corresponding certificate of its generated public key Cert (PK’ _ui) from an authorized third party (e.g., CA in PKI) or the CSP. For example, in step 502a, the user u1 may generate one key pair (PK’ _u1, SK’ _u1) , and get the corresponding certificate of its generated public key Cert (PK’ _u1) . In step 502b, the user u2may generate one key pair (PK’ _u2, SK’ _u2) , and get the corresponding certificate of its generated public key Cert (PK’ _u2) . For the  CSP, in step 502c, it may receive the public key PK’ _ui, and issue corresponding certificate Cert (PK’ _ui) to each user ui.
 Then, in step504, the user u1 may generate hash information of the data M. the hash information may include at least a hash code of the data M. For example, the user u1 may calculate H (M) , and sign the H (M) with SK’ _u1 as Sign (H (M) , SK’ _u1) , where Sign () denotes a signature function.
 Then, in step 506, the user u1 may send at least the hash information of the data M. For example, the user u1 may send a package P1= {H (M) , Sign (H (M) , SK’ _u1) , Cert (PK’ _u1) } to the CSP.
 Then, in step 508, the CSP may check whether the same data M has been saved at the CSP; if no same data has been saved at the CSP, the CSP may request the user u1 to send the data; and if the same data has been saved at the CSP, the CSP may verify the ownership of the user u1, which will be described in detail in the aftermentioned step 520. It should be noted that the steps 508 and 520 are substantially same. Because it is assumed that the first uploader is the data owner, the CSP requests the user u1 to upload the data in step 508.
 For example, in step 508, the CSP may verify the certificate Cert (PK’ _u1) , then verify the signature Sign (H (M) , SK’ _u1) with the PK’ _u1, and then check if the same H (M) is recorded at the CSP. Because the user u1 (i.e. the data owner) is assumed to be the first uploader, the CSP may request the data from the user u1 in step 510.
 Then, in step 512, the user u1 may calculate index list and hash chain information of the data M. For example, the user u1 may randomly select an index list: IN={In1, In2, …, Ink} that indicates the special parts of M (e.g., In1 indicates first 1%of the data; In2indicates first 1.2%of the data) . Furthermore, the user u1 may calculate the hash codes of respective partial M based on the indexes to get HC (M) = {H (M1) , H(M2) , …, H (Mk) } . The user u1 may further sign the HC (M) with the SK’ _u1 to get Sign (HC (M) , SK’ _u1) .
 Then, in step 514, the user u1 may send at least the index list, the hash chain information and the data M. The hash chain information may include at least the hash chain of the data M. For example, the user u1 may send the data package DP1= {M_u1, IN, HC (M) , Sign (HC (M) , SK’ _u1) } to the CSP. Then, in step 516, the CSP may store the data package.
 Then, in step 518, the user u2may later on try to save the same data M at the CSP. Similarly to step 506, the user u2may send at least the hash information of the data M. For example, the user u2may send a package P2= {H (M) , Sign (H (M) , SK’ _u2) , Cert (PK’ _u2) } to the CSP.
 Then, similarly to step 508, in step 520, the CSP may check whether the same data M has been saved at the CSP; if no same data has been saved at the CSP, the CSP may request the user to send the data; and if the same data has been saved at the CSP, the CSP may verify the ownership of the user. Because the user u1 has saved the same data at the CSP, the check result is positive. In this case, the CSP may request the user u2to send hash information corresponding to one index or more than one index from the index list. For example, the CSP may randomly select at least one index x. The CSP may further encrypt the at least one index x with the PK’ _u2as E (x, PK’_u2) . Then, in step 522, the CSP may send the index information (e.g., E (x, PK’_u2) ) to the user u2. Note that more than one HC (Mx) could be challenged by CSP at this step in order to ensure the holdership of the data.
 Then, in step 524, the user u2may calculate and send the corresponding hash information to the CSP. The corresponding hash information may include at least the hash code corresponding to the at least one index sent from the CSP. For example, the user u2 may calculate a hash code HC (Mx) , where Mx denotes the partial M corresponding to the at least one index x sent from the CSP. The user u2may further sign the HC (Mx) with the SK’ _u2 as Sign (HC (Mx) , SK’ _u2) . Then, the user u2 may send the HC (Mx) and the Sign (HC (Mx) , SK’ _u2) to the CSP.
 Then, in step 526, the CSP may verify the hash information sent from the user u2based on the hash chain information which has been saved at the CSP by the  user u1; if the verification result is positive, the CSP may update the deduplication record on the hash information H (M) for the user u2. In this way, the user u2 may access the data without saving duplicated data at the CSP.
 It should be noted that although in the embodiments shown in FIGs. 2-5, the DEK2 is encrypted with the access policy (i.e. , a CP-ABE scheme is used) , the present disclosure is not so limited. For example, KP-ABE may also be used in the embodiments of the present disclosure.
 FIG. 6 shows a flowchart of a process for data deduplication through multiple CSPs’ cooperation according to an embodiment of the present disclosure. In step 602, a user may request its local CSP for data storage. For example, the process of step 602 may be similar to the process of steps 204 (or 304, 404, 504) and 206 (or 306, 406, 506) .
 Then, in step 604, the local CSP may check whether data duplication happens. If the check result in step 604 is positive, the local CSP may proceed to step 606 in which the local CSP may perform deduplication by itself or by contacting the data owner and/or the AP based on the policy of deduplication. For example, the policy of deduplication may be determined according to whether any CK is received from the data owner and what kind (s) of CK (s) is (are) received. If no CK is received, the CSP may conduct deduplication by itself. Otherwise, the CSP may contact the AP if the CK1 is received, and contact the data owner if the CK2 is received. Note that the present disclosure is not so limited. For another example, the policy of deduplication may also simply be transmitted in the data package in step 214 or 314 or 414 or 514, or may be transmitted to the CSP in another secure way. For further one example, the policy of deduplication may be pre-determined (e.g., according to an agreement between the user u1 and the CSP) , and stored in advance in the system of the CSP.
 The processes of  steps  604 and 606 may be similar to the processes of steps (220, 222, 226, 228, 234, 236, 240 and 250) , or steps (320, 322, 326, 328, 334 and 336) , or steps (520, 522 and 526) .
 On the other hand, if the check result in step 604 is negative, the local CSP may proceed to step 608 in which the CSP may check with other CSPs if the same data is stored (for example through broadcasting the data storage request of the user) . If there is no positive reply from other CSPs, the local CSP may perform data storage by requesting data package from the user in step 612. On the other hand, if there is a remote CSP’ which replies that the same data has been stored in its storage system, the local CSP may record the user data deduplication information locally in step 614. Note that the local CSP may optionally send a deduplication request to the remote CSP’ to trigger the deduplication. Then, in step 616, the remote CSP’ may perform deduplication by itself or by contacting the data owner and/or the AP. In the case of contacting the data owner and/or the AP, corresponding keys may be generated by the data owner and/or AP and issued to the user through the cooperation of CSP and CSP’ (for example, the CSP’ may contact the user via the CSP) . The process of step 616 may be similar to the processes of steps (220, 222, 226, 228, 234, 236, 240 and 250) , or steps (320, 322, 326, 328, 334 and 336) , or steps (520, 522 and 526) , except that in step 616, the CSP’ may directly proceed to challenge from the hash chain since the same data has been determined to be saved on the CSP’ in step 610.
 FIG. 7 shows a flowchart of a process for data deletion according to an embodiment of the present disclosure. In step 702, the user u may send a data deletion request to its local CSP. The data deletion request may include at least the hash information of the data M. For example the user u may send the H (M) and Sign (H (M) , SK’ _u) to the local CSP.
 Then, in step 704, the CSP may verify the ownership of the user u, and if the verification result is positive, the CSP may delete the storage record of the user u and block its future access to the data M. The process for verifying the ownership of the user u may be similar to the process for verifying the ownership in steps (220, 222 and 226) .
 Then, in step 706, the CSP may check if the data is locally saved. If the check result is positive in step 706, the CSP may check whether the data deduplication  record is empty (i.e. , no user saves such data in the CSP any more) in step 718. If the check result in step 718 is positive, the CSP may delete the data. On the other hand, if the check result in step 718 is negative, the CSP may contact the data owner for conducting DEK update which will be described later with reference to FIG. 9. If the user u is the data owner, the CSP may inquire the user u whether to decide to continue deduplication control, as described below with reference to FIG. 8.
 On the other hand, if the check result is negative in step 706, the local CSP may contact a remote CSP’ that really stores the data in step 708. For example, the CSP may transfer the data deletion request to the CSP’ . Then, in step 710, the CSP’ may delete the storage record of the user u and block its future access to the data M. Then, similarly to step 718, in step 712, the CSP’ may check if the data deduplication record is empty (i.e. , no user saves such data in the CSP’ a ny more) . If the check result is positive in step 712, the CSP’ may delete the data in step 714. On the other hand, if the check result is negative in step 712, the CSP’ may contact the data owner in step 714 for conducting DEK update which will be described later with reference to FIG. 9. Likewise, if the user u is the data owner, the CSP’ may also inquire the user u whether to decide to continue deduplication control, as described below with reference to FIG. 8.
 FIG. 8 shows a flowchart of a process for continuous data deduplication control according to an embodiment of the present disclosure. In this case, the data owner deletes its data at the CSP, but still there are other eligible data holders storing the same data at the CSP. Thus, the CSP inquires the data owner about continuous deduplication control.
 In step 802, the CSP may inquire the data owner about continuous deduplication control. If the data owner’s decision is positive in step 802, the data owner may continue deduplication control in step 812 for example by issuing access keys to eligible users. On the other hand, if the data owner’s decision is negative in step 802, the data owner may transfer the deduplication control to the AP in step 806. For example, the data owner may generates a new DEK’ =DEK’ 1, and encrypt it with  pk_AP, and then send DP’ = {CT’ , CK1’ } to the CSP. The CSP may perform re-encryption on CK1’ using the re-encryption keys of all eligible users, and update the deduplication record of the underlying data in step 808. When any eligible data user accesses the data, CSP may provide the CT’ and the re-encrypted CK1’ to the eligible data user in step 810.
 It should be noted that FIG. 8 only illustrates one solution of continuous deduplication control. The present disclosure is not limited thereto. For example, other data holders may also take over the deduplication control. In this case, CSP may request a new delegate from existing data holders, or select one of them (e.g., based on the duration of data storage and/or user willingness) . The new delegate will generate a new DEK’ and perform storage update by applying the new DEK’ . This process is similar to the DEK update as described below with reference to FIG. 9.
 FIG. 9 shows a flowchart of an overall system process for updating data encryption key and ciphertext according to an embodiment of the present disclosure. In step 912, the data owner (or an eligible data holder) u1 may generate a new data encryption key DEK’ , encrypt the data M with the DEK’ , separate the DEK’ into a DEK1’ and a DEK2’ , encrypt the DEK1’ a ccording to a PRE scheme, and encrypt the DEK2’ a ccording to an ABE scheme. For example, the user u1 may encrypt the data M with a new symmetric key DEK’ _u1 to get CT’ _u1=Encrypt (DEK’ _u1, M) . The user u1 may then call SeparateKey (DEK’ _u1) to get two random parts of DEK’ _u1: DEK1’ _u1 and DEK2’ _u1. The user u1 may encrypt the DEK2’ _u1 with the pk_ (ID, u1) by calling EncryptKey (DEK2’ _u1, A, pk_ (ID, u1) ) to get CK2’ _u1. The user u1 may then encrypt DEK1’ _u1 with the pk_AP to get CK1’ _u1 by calling E (pk_AP, DEK1’ _u1) .
 Then, in step 914, the user u1 may send the hash and/or hash chain information, the newly encrypted data, the newly encrypted DEK1 and the newly encrypted DEK2. The hash or hash chain information may include at least the hash code or hash chain of the data M. For example, the user u1 may send a data package DP1’ = {CT’ _u1, CK1’ _u1, CK2’ _u1, H (M) and/or HC (M) , Sign (H (M) , SK’ _u1) and/or  Sign (HC (M) , SK’ _u1) } to the CSP. Then, in step 916, the CSP may validate the eligibility of the user u1 and store the DP1’ . For example, the CSP may verify the Sign (H (M) , SK’ _u1) and/or Sign (HC (M) , SK’ _u1) with the PK’ _u1 to validate the eligibility of the user u1.
 Then, in step 928, the CSP may send the public key information for PRE of any eligible data holders (e.g., the user u2) to the AP if rk_AP->u2is not available. For example, the CSP may send the certificate Cert (pk_u2) (that contains pk_u2) to the AP.
 Then, in step 930, the AP may verify the policy for data storage at a third party regarding the user u2, and if the verification result is positive, the AP may generate re-encryption information for the user u2 (if it is not available) . For example, the AP may generate a rk_AP->u2 by calling RG (pk_AP, sk_AP, pk_u2) (if it is not available) . Then, in step 932, the AP may issue the re-encryption information to the CSP. For example, the AP may issue the rk_AP->u2to the CSP for example by using a secure channel.
 Then, in step 934, the CSP may re-encrypt the CK1’ _u1 with the re-encryption information. For example, the CSP may re-encrypt the CK1’ _u1 by calling R(rk_AP->u2, E (pk_AP, DEK1’ _u1) ) = E (pk_u2, DEK1’ _u1) . Then, in step 936, the CSP may inform the re-encrypted CK1’ (i.e. the E (pk_u2, DEK1’ _u1) ) and the new encrypted DEK2’ (i.e. CK2’ _u1) to the user u2. About E (pk_u2, DEK1’ _u1) , the user u2may send acknowledgement to the CSP.
 Then, in step 944, the user u1 may issue the personalized attribute secret key for the user u2 (if it is not sent before) to the user u2. For example, the user u1 may issue the sk_ (ID, u1, u2) (if it is not sent before) to the user u2 (using a secure channel or PKC) .
 Then, in step 946, the user u2 may decrypt the CK2’ _u1 (from step 936) for example by calling DecryptKey (CK2’ _u1, A, SK_u2, sk_ (ID, u1, u2) ) to get the DEK2’ _u1, decrypt the re-encrypted DEK1’ _u1 (i.e. the E (pk_u2, DEK1’ _u1) ) with its secret key sk_u2 (e.g., by calling D (sk_u2, E (pk_u2, DEK1’ _u1) ) , and combine the DEK1’ _u1 and the DEK2’ _u1 by calling CombineKey (DEK1’ _u1, DEK2’ _u1) to get  the DEK’ _u1. In this way, the user u2 may access the newly encrypted data CT’ _u1 with the DEK’ _u1.
 It should be noted that in the above described process, it is assumed that the data owner u1 knows who has been issued the secret keys already, and thus there is no need for the CSP to inform the data owner of this information. However, in a case where the data owner lost this information, or the eligibility check is updated to limit old users to further access, or the data owner has not issued the secret keys on time, a CSP notification may be needed. In this case, in step 940, the CSP may send the data identifier of the data M (e.g., the H (M) ) and the public key information for ABE of eligible data holders (e.g., the Cert (PK_u2) which contains the PK_u2) to the user u1.
 It should also be noted that FIG. 9 only illustrates one scenario where both data owner and AP deduplication control are needed. Similarly to FIGs. 3-4, by setting DEK1’ =DEK’ or DEK2’ =DEK’ and omitting the steps for the other deduplication control, the DEK update process for the scenario where only AP deduplication control is needed or the scenario where only data owner deduplication control is needed can be obtained.
 FIG. 10 shows a flowchart of a process for managing data storage in a user device according to an embodiment of the present disclosure. The process may be executed by a user device to implement the functions of the present disclosure. Firstly, in step 1002, a DEK may be set to have a null value or a non-null value (for example, according to different storage scenarios and/or deduplication policies) . Then, in step 1004, it may be determined whether the DEK has a null value. If it is determined in step 1004 that the DEK has a null value, a data may be transmitted to a data center in the communication network for storing the data in the data center. On the other hand, if it is determined in step 1004 that the DEK has a non-null value, the data may be encrypted with the DEK in step 1008.
 Then, in step 1010, the DEK may be separated to a first DEK and a second DEK (for example, according to different storage scenarios and/or deduplication policies) , where the first and second DEKs each has a null value or a non-null value.  Then, in step 1012, the first DEK may be encrypted according to a proxy re-encryption (PRE) scheme if the first DEK has a non-null value, and the second DEK may be encrypted according to an attribute based encryption (ABE) scheme if the second DEK has a non-null value. Then, in step 1014, the encrypted data, the encrypted first DEK if any, and the encrypted second DEK if any, may be transmitted to the data center for storing them in the data center. The process of steps 1002-1014 may be similar to the process of steps (212, 214) or (312, 314) or (412, 414) or (512, 514) .
 Additionally, in a case where the DEK2 has a non-null value (i.e. , data owner deduplication control is needed) , a personalized attribute secret may be generated and issued to an eligible user in step 1016, if a deduplication request is received. The process of step 1016 may be similar to the process of steps (242, 244) or (442, 444) .
 Optionally, in step 1018, as an eligible holder of another data, a re-encrypted DEK1’ for the another data, an encrypted DEK2’ for the another data and a personalized attribute secret key may be received, decryption may be conducted to obtain DEK1’ and DEK2’ , and the DEK1’ and DEK2’ may be combined to obtain DEK’ for data deduplication. The process of step 1018 may be similar to the process of steps (238, 246) or 338 or 446.
 FIG. 11 shows a flowchart of a process for managing data storage in a communication network according to an embodiment of the present disclosure. The process may be executed by a data center to implement the functions of the present disclosure. Firstly, in step 1102, a data storage request may be received from a user. The process of step 1102 may be similar to the process of steps (206, 218) or (306, 318) or (406, 418) or (506, 518) . Then, in step 1104, it may be determined whether the same data has been stored in the data center. If it is determined in step 1104 that no same data has been stored in the data center, an encrypted data, an encrypted first data encryption key (DEK) if any, and an encrypted second DEK if any, or the data may be received from a first device and stored in the data center, wherein the encrypted data is generated by encrypting the data with a DEK, the DEK is separated  into the first DEK and the second DEK, the first DEK and the second DEK each has a null value or a non-null value, the encrypted first DEK is generated by encrypting the first DEK according to a proxy re-encryption (PRE) scheme, and the encrypted second DEK is generated by encrypting the second DEK according to an attribute based encryption (ABE) scheme in step 1106. The process of  steps  1104 and 1106 may be similar to the process of steps (208, 210, 216) or (308, 310, 316) or (408, 410, 416) or (508, 510, 516) .
 On the other hand, if it is determined in step 1104 that the same data has been stored in the data center, it may determine whether AP deduplication control is needed (for example according to whether the encrypted first DEK exists in the data received from the first device) in step 1108. If it is determined in step 1108 that no AP deduplication control is needed, the process may proceed to step 1112. On the other hand, if it is determined in step 1108 that AP deduplication control is needed, an AP may be contacted to conduct deduplication according to a PRE scheme. The process of  steps  1108 and 1110 may be similar to the process of steps (228, 232, 234, 236) or (328, 332, 334, 336) . In  step  228 or 328, because it is determined that AP deduplication control is needed (for example according to the fact that the encrypted first DEK exists in the data received from the first device) , the AP may be contacted to conduct deduplication. In  step  232 or 332, a re-encryption key may be received from the AP. In step 234 or 334, the encrypted first DEK may be re-encrypted with the re-encryption key. In step 236 or 336, the re-encrypted first DEK may be issued to an eligible data holder.
 Then, in step 1112, it may be determined whether data owner deduplication control is needed (for example according whether the encrypted second DEK exists in the data received from the first device) . If it is determined in step 1112 that no data owner deduplication control is needed, the process may end in step 1116. On the other hand, if it is determined in step 1112 that data owner deduplication control is needed, a data owner may be contacted to conduct deduplication according to an ABE scheme  in step 1114. The process of  steps  1112 and 1114 may be similar to step 240 or 440. Then, the process may end in step 1116.
 Based on the above description, the following advantageous technical effects can be achieved in the present disclosure:
(1) Scalability: The present disclosure can support a large volume of duplicated data storage happened at one CSP, as well as a number of CSPs. Duplication check and deduplication can be handled among a number of CSPs in order to save each one’s storage space.
(2) Flexibility: The present disclosure can cooperate with other data access control mechanisms handled by the data owner by introducing control attributes (access policies) into the DEK2 encryption with ABE through policy A update for supporting both deduplication and access control. In this way, it can support digital rights management based on the expectation of the data owner. In addition, it can also cooperate with centralized data access control mechanisms by involving access policies into the check for re-encryption key generation at an authorized party (AP) and/or CK1 re-encryption at CSP. Either distributed control or centralized control or both can be supported by the invention flexibly based on the data owner’s willingness.
(3) Using ABE at the data owner and/or applying PRE at AP, it is easy to build a access policy tree that contains attributes (e.g., trust level and identifier) used for data access and deduplication, and involve policies into AP to allow it to delegate control for the purpose of access and deduplication.
(4) Low cost of storage: The present disclosure can obviously save the storage space for a number of CSPs. Only one copy of the same data is stored cross multiple CSPs. Storing deduplication records at each CSP may occupy some storage or memory. Additional duplication check and deduplication process may request some memory and processing cost. But this cost can be ignored comparing with the saving of a big volume of duplicated data storage.
(5) Security: The security of the present disclosure is ensured by ABE theory, PRE theory, symmetric key encryption and public PKC theory. Two-dimensional deduplication control can be more secure than one-dimensional deduplication control. In addition, we apply random hash chain check to further verify the validity of the ownership of the data. Additional management protocols can be applied to support data storage management at the same time for achieving deduplication.
 FIG. 12 is a simplified block diagram showing an apparatus that are suitable for use in practicing some exemplary embodiments of the present disclosure. For example, any one of the user devices 110, the data center 120 or 120’ and the AP 130 shown in FIG. 1 may be implemented through the apparatus 1200. As shown, the apparatus 1200 may include a data processor (DP) 1210, a memory (MEM) 1220 that stores a program (PROG) 1230, and a communication interface1240 for communicating data with other external devices through wired and/or wireless communication.
 The PROG 1230 is assumed to include program instructions that, when executed by the DP 1210, enable the apparatus 1200 to operate in accordance with the exemplary embodiments of this disclosure, as discussed above. That is, the exemplary embodiments of this disclosure may be implemented at least in part by computer software executable by the DP 1210, or by hardware, or by a combination of software and hardware.
 The MEM 1220 may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor based memory devices, flash memory, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory. The DP1210 may be of any type suitable to the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs) and processors based on multi-core processor architectures, as non-limiting examples.
 In general, the various exemplary embodiments may be implemented in hardware or special purpose circuits, software, logic or any combination thereof. For example, some aspects may be implemented in hardware, while other aspects may be implemented in firmware or software which may be executed by a controller, microprocessor or other computing device, although the disclosure is not limited thereto. While various aspects of the exemplary embodiments of this disclosure may be illustrated and described as block diagrams, flow charts, or using some other pictorial representation, it is well understood that these blocks, apparatus, systems, techniques or methods described herein may be implemented in, as non-limiting examples, hardware, software, firmware, special purpose circuits or logic, general purpose hardware or controller or other computing devices, or some combination thereof.
 As such, it should be appreciated that at least some aspects of the exemplary embodiments of the disclosure may be practiced in various components such as integrated circuit chips and modules. It should thus be appreciated that the exemplary embodiments of this disclosure may be realized in an apparatus that is embodied as an integrated circuit, where the integrated circuit may comprise circuitry (as well as possibly firmware) for embodying at least one or more of a data processor, a digital signal processor, baseband circuitry and radio frequency circuitry that are configurable so as to operate in accordance with the exemplary embodiments of this disclosure.
 It should be appreciated that at least some aspects of the exemplary embodiments of the disclosure may be embodied in computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other device. The computer executable instructions may be stored on a computer readable medium such as a hard disk, optical disk, removable storage media, solid state memory, RAM, etc. As will be  appreciated by one of skill in the art, the function of the program modules may be combined or distributed as desired in various embodiments. In addition, the function may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA) , and the like.
 The present disclosure includes any novel feature or combination of features disclosed herein either explicitly or any generalization thereof. Various modifications and adaptations to the foregoing exemplary embodiments of this disclosure may become apparent to those skilled in the relevant arts in view of the foregoing description, when read in conjunction with the accompanying drawings. However, any and all modifications will still fall within the scope of the non-Limiting and exemplary embodiments of this disclosure.

Claims (64)

  1. A method for managing data storage in a communication network, the method comprising:
    receiving at a data center in the communication network from a first device, a request for storing a data in the data center;
    checking whether the same data has been stored in the data center;
    in response to a check result that no same data has been stored in the data center, receiving from the first device a data package containing at least the data in plaintext or ciphertext (CT) ;
    in response to a check result that the same data has been stored in the data center, obtaining a deduplication policy for the data;
    when the deduplication policy indicates deduplication to be controlled by both or either of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner, contacting both or either of the AP and the data owner, or only the AP, or only the data owner to conduct deduplication for the data; and
    when the deduplication policy indicates deduplication to be controlled by none of the AP and the data owner, conducting deduplication for the data at the data center.
  2. The method according to claim 1, wherein the data package further contains an index list and a hash chain information, the index list including a plurality of indexes each indicating a specific part of the data, the hash chain information including a plurality of hash information each corresponding to one index;
    wherein contacting to conduct deduplication or conducting deduplication for the data comprises:
    requesting the first device to transmit a hash information corresponding to at least one index from the index list;
    verifying whether the first device holds the data based on the hash information from the first device corresponding to the requested at least one index; and
    in response to a positive verification result, contacting to conduct deduplication or recording a deduplication information of the data for the first device.
  3. The method according to claim 1 or 2, wherein obtaining the deduplication policy for the data comprises reading the deduplication policy stored in advance in the data center, or receiving the deduplication policy from the data owner, or determining the deduplication policy according to the data package.
  4. The method according to any one of claims 1-3, wherein determining the deduplication policy comprises:
    when the data package further contains a first cipherkey (CK) and a second CK being not equal to each other, determining deduplication to be controlled by both of the AP and the data owner, the first and second CKs being generated by separating a data encryption key (DEK) into a first DEK and a second DEK, and encrypting the first and second DEKs respectively, the DEK being used for encrypting the data to obtain the CT;
    when the data package further contains the first and second CKs being equal to each other, determining deduplication to be controlled by either of the AP or the data owner;
    when the data package further contains only the first CK or only the second CK, determining deduplication to be controlled by only the AP or only the data owner; and
    when the data package contains no CK, determining deduplication to be controlled by none of the AP and the data owner.
  5. The method according to any one of claims 1-4, wherein contacting the AP to conduct deduplication for the data comprises:
    receiving a re-encryption key from the AP when it is not available;
    re-encrypting the first CK with the re-encryption key according to a proxy re-encryption (PRE) scheme; and
    transmitting the re-encrypted first CK to the first device such that the first device can decrypt the re-encrypted first CK with a secret key of the first device.
  6. The method according to any one of claims 1-5, wherein contacting the data owner to conduct deduplication for the data comprises:
    transmitting an attribute identity (ID) of the first device to the data owner such that the data owner can issue an attribute secret key for the first device when it is eligible to decrypt the second CK according to an attribute based encryption (ABE) scheme.
  7. The method according to any one of claims 1-6, further comprising:
    in response to a check result that no same data has been stored in the data center, requesting at least one further data center to check whether the same data has been stored in it;
    in response to a positive reply from the at least one further data center, recording a deduplication information of the data for the first device, wherein the at least one further data center is able to conduct deduplication for the data.
    in response to a negative reply from the at least one further data center, performing data storage accordingly.
  8. The method according to any one of claims 1-7, further comprising:
    receiving at the data center from a second device, a request for deleting a data;
    checking whether the data is stored in the data center by the second device;
    in response to a positive check result, deleting a record of storage of the data for the second device; deleting the data when a deduplication record for the data is empty; and notifying an owner of the datafor updating the CT when the deduplication record for the data is not empty; and
    in response to a negative check result, contacting another data center that stores the data, wherein the another data center is able to delete a record of storage of the data for the second device.
  9. The method according to claim 8, wherein notifying the owner for updating the CT comprises:
    inquiring whether the owner decides to continue deduplication control;
    in response to a positive decision, cooperating with the data owner to update the CT according to the deduplication policy of the data;
    in response to a negative decision, requesting another holder of the data for updating the CT, or cooperating with the data owner to update the CT according to a new deduplication policy, the new deduplication policy indicating deduplication to be controlled by only the AP.
  10. The method according to any one of claims 5-9, further comprising:
    in response to a request for updating the CT of a data, obtaining the deduplication policy for the data;
    when the deduplication policy indicates that AP deduplication control is needed, re-encrypting the updated first CK with the re-encryption key according to a PRE scheme; and
    transmitting the re-encrypted updated first CK to the first device such that the first device can decrypt the re-encrypted updated first CK with a secret key of the first device;
    when the deduplication policy indicates that a deduplication control by the data owner is needed, informing the data owner the data identifier and the public key information of the data holder when necessary according to a ABE scheme, in order to allow the data owner to perform data deduplication by issuing a secret key to the first device such that the first device can decrypt the updated second CK.
  11. A method for managing data storage in a user device, the method comprising:
    transmitting at the user device, a request for storing a data to a data center;
    in response to a request for the data from the data center, transmitting a data package containing at least the data in plaintext or ciphertext (CT) to the data center, wherein a deduplication policy for the data is contained in the data package or can be determined according to the data package, the deduplication policy indicating deduplication to be controlled by both or either or none of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner;
    in response to a deduplication request for the data from the data center or at least one further data center, issuing an attribute secret key to an eligible data holder according to an attribute based encryption (ABE) scheme for conducting deduplication.
  12. The method according to claim 11, further comprising:
    transmitting in the data package an index list and a hash chain information for verifying holdership of the data for an eligible data holder, the index list including a plurality of indexes each indicating a specific part of the data, the hash chain information including a plurality of hash information each corresponding to one index.
  13. The method according to claim 11 or 12, further comprising:
    transmitting a request for storing a second data to the data center;
    in response to a request for a hash information corresponding to at least one index from the data center, transmitting a calculated hash information corresponding to the at least one index to the data center for verifying the holdership of the second data.
  14. The method according to any one of claims 11-13, further comprising:
    when the deduplication policy indicates deduplication to be controlled by both of the AP and the data owner, transmitting in the data package a first cipherkey (CK) and a second CK being not equal to each other, the first and second CKs being generated by separating a data encryption key (DEK) into a first DEK and a second  DEK and encrypting the first and second DEKs respectively, the DEK being used for encrypting the data to obtain the CT;
    when the deduplication policy indicates deduplication to be controlled by either of the AP or the data owner, transmitting in the data package the first and second CKs being equal to each other;
    when the deduplication policy indicates deduplication to be controlled by only the AP or only the data owner, transmitting in the data package only the first CK or only the second CK; and
    when the deduplication policy indicates deduplication to be controlled by none of the AP and the data owner, transmitting the plaintext in the data package.
  15. The method according to claim 14, wherein the first DEK is encrypted with a public key of the AP according to a proxy re-encryption (PRE) scheme; and
    wherein the second DEK is encrypted based on an access policy, the access policy containing user identities (IDs) of users eligible for holding the data.
  16. The method according to any one of claims 11-15, wherein the deduplication request for the data contains a user ID information;
    wherein issuing the attribute secret key for conducting deduplication comprises:
    verifying whether the user ID information represents a user eligible for holding the data; and
    in response to a positive verification result, generating the attribute secret key based on the user ID information.
  17. The method according to any one of claims 13-16, further comprising:
    receiving a re-encrypted first CK for the second data from the data center;
    decrypting the re-encrypted first CK with a private key of the user device to obtain the first DEK;
    receiving an attribute secret key from an owner of the second data, and receiving the second CK for the second data from the owner of the second data or the data center;
    decrypting the second CK with the attribute secret key to obtain the second DEK;
    combining the first and second DEKs to obtain the DEK for deduplication.
  18. The method according to any one of claims 11-17, further comprising:
    transmitting at the user device, a request for deleting a data to the data center;
    in response to a request for a hash information corresponding to at least one index from the data center, transmitting a calculated hash information corresponding to the at least one index to the data center for verifying the holdership of the data;
    in response to a request to update the CT from the data center or at least one further data center, updating the CT according to a deduplication policy of the data.
  19. The method according to claim 18, further comprising:
    when continuous deduplication control is needed, updating the CT according to an original deduplication policy of the data; and
    when no continuous deduplication control is needed, updating the CT according to a new deduplication policy, the new deduplication policy indicating deduplication to be controlled by only the AP.
  20. The method according to any one of claims 11-19, further comprising:
    transmitting a request for updating a CT of a data to the data center, wherein a deduplication policy for the data is contained in the request or can be determined according to the request, the deduplication policy indicating deduplication to be controlled by both or either of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner or none;
    when the deduplication policy indicates that data owner deduplication control is needed, issuing an attribute secret key to an eligible data holder according to an  attribute based encryption (ABE) scheme for conducting deduplication when the attribute secret key is not sent before.
  21. The method according to any one of claims 11-20, further comprising:
    receiving a re-encrypted updated first CK from the data center;
    decrypting the re-encrypted updated first CK with a private key of the user device to obtain the updated first DEK;
    receiving an attribute secret key from an owner of the data when it is not available, and receiving the updated second CK from the data center or the data owner;
    decrypting the updated second CK with the attribute secret key to obtain the updated second DEK;
    combining the updated first and second DEKs to obtain the updated DEK for deduplication.
  22. An apparatus for managing data storage in a communication network, the apparatus comprising:
    means for receiving from a first device, a request for storing a data in the apparatus;
    means for checking whether the same data has been stored in the apparatus;
    means for in response to a check result that no same data has been stored in the apparatus, receiving from the first device a data package containing at least the data in plaintext or ciphertext (CT) ;
    means for in response to a check result that the same data has been stored in the apparatus, obtaining a deduplication policy for the data;
    means for when the deduplication policy indicates deduplication to be controlled by both or either of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner, contacting both or either of the AP and the data owner, or only the AP, or only the data owner to conduct deduplication for the data; and
    means for when the deduplication policy indicates deduplication to be controlled by none of the AP and the data owner, conducting deduplication for the data.
  23. The apparatus according to claim 22, wherein the data package further contains an index list and a hash chain information, the index list including a plurality of indexes each indicating a specific part of the data, the hash chain information including a plurality of hash information each corresponding to one index;
    wherein means for contacting to conduct deduplication or conducting deduplication for the data comprises:
    means for requesting the first device to transmit a hash information corresponding to at least one index from the index list;
    means for verifying whether the first device holds the data based on the hash information from the first device corresponding to the requested at least one index; and
    means for in response to a positive verification result, contacting to conduct deduplication or recording a deduplication information of the data for the first device.
  24. The apparatus according to claim 22 or 23, wherein means for obtaining the deduplication policy for the data comprises means for reading the deduplication policy stored in advance in the data center, or means for receiving the deduplication policy from the data owner, or means for determining the deduplication policy according to the data package.
  25. The apparatus according to any one of claims 22-24, wherein means for determining the deduplication policy comprises:
    means for when the data package further contains a first cipherkey (CK) and a second CK being not equal to each other, determining deduplication to be controlled by both of the AP and the data owner, the first and second CKs being generated by separating a data encryption key (DEK) into a first DEK and a second DEK and  encrypting the first and second DEKs respectively, the DEK being used for encrypting the data to obtain the CT;
    means for when the data package further contains the first and second CKs being equal to each other, determining deduplication to be controlled by either of the AP or the data owner;
    means for when the data package further contains only the first CK or only the second CK, determining deduplication to be controlled by only the AP or only the data owner; and
    means for when the data package contains no CK, determining deduplication to be controlled by none of the AP and the data owner.
  26. The apparatus according to any one of claims 22-25, wherein means for contacting the AP to conduct deduplication for the data comprises:
    means for receiving a re-encryption key from the AP when it is not available;
    means for re-encrypting the first CK with the re-encryption key according to a proxy re-encryption (PRE) scheme; and
    means for transmitting the re-encrypted first CK to the first device such that the first device can decrypt the re-encrypted first CK with a secret key of the first device.
  27. The apparatus according to any one of claims 22-26, wherein means for contacting the data owner to conduct deduplication for the data comprises:
    means for transmitting an attribute identity (ID) of the first device to the data owner such that the data owner can issue an attribute secret key for the first device when it is eligible to decrypt the second CK according to an attribute based encryption (ABE) scheme.
  28. The apparatus according to any one of claims 22-27, further comprising:
    means for in response to a check result that no same data has been stored in the apparatus, requesting at least one further data center to check whether the same data has been stored in it;
    means for in response to a positive reply from the at least one further data center, recording a deduplication information of the data for the first device, wherein the at least one further data center is able to conduct deduplication for the data;
    means for in response to a negative reply from the at least one further data center, performing data storage accordingly.
  29. The apparatus according to any one of claims 22-28, further comprising:
    means for receiving from a second device, a request for deleting a data;
    means for checking whether the data is stored in the apparatus by the second device;
    means for in response to a positive check result, deleting a record of storage of the data for the second device; deleting the data when a deduplication record for the data is empty; and notifying an owner of the datafor updating the CT when the deduplication record for the data is not empty; and
    means for in response to a negative check result, contacting another data center that stores the data, wherein the another data center is able to delete a record of storage of the data for the second device.
  30. The apparatus according to claim 29, wherein means for notifying the owner for updating the CT comprises:
    means for inquiring whether the owner decides to continue deduplication control;
    means for in response to a positive decision, cooperating with the data owner to update the CT according to the deduplication policy of the data;
    means for in response to a negative decision, requesting another holder of the data for updating the CT, or cooperating with the data owner to update the CT  according to a new deduplication policy, the new deduplication policy indicating deduplication to be controlled by only the AP.
  31. The apparatus according to any one of claims 26-30, further comprising:
    means for in response to a request for updating the CT of a data, obtaining the deduplication policy for the data;
    means for when the deduplication policy indicates that AP deduplication control is needed, re-encrypting the updated first CK with the re-encryption key according to a PRE scheme; and
    means for transmitting the re-encrypted updated first CK to the first device such that the first device can decrypt the re-encrypted updated first CK with a secret key of the first device;
    means for when the deduplication policy indicates that a deduplication control by the data owner is needed, informing the data owner the data identifier and the public key information of the data holder when necessary according to a ABE scheme, in order to allow the data owner to perform data deduplication by issuing a secret key to the first device that can decrypt the updated second CK.
  32. An apparatus for managing data storage in a user device, the apparatus comprising:
    means for transmitting  a request for storing a data to a data center;
    means for in response to a request for the data from the data center, transmitting a data package containing at least the data in plaintext or ciphertext (CT) to the data center, wherein a deduplication policy for the data is contained in the data package or can be determined according to the data package, the deduplication policy indicating deduplication to be controlled by both or either or none of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner;
    means for in response to a deduplication request for the data from the data center or at least one further data center, issuing an attribute secret key to an eligible  data holder according to an attribute based encryption (ABE) scheme for conducting deduplication.
  33. The apparatus according to claim 32, further comprising:
    means for transmitting in the data package an index list and a hash chain information for verifying holdership of the data for an eligible data holder, the index list including a plurality of indexes each indicating a specific part of the data, the hash chain information including a plurality of hash information each corresponding to one index.
  34. The apparatus according to claim 32 or 33, further comprising:
    means for transmitting a request for storing a second data to the data center;
    means for in response to a request for a hash information corresponding to at least one index from the data center, transmitting a calculated hash information corresponding to the at least one index to the data center for verifying the holdership of the second data.
  35. The apparatus according to any one of claims 32-34, further comprising:
    means for when the deduplication policy indicates deduplication to be controlled by both of the AP and the data owner, transmitting in the data package a first cipherkey (CK) and a second CK being not equal to each other, the first and second CKs being generated by separating a data encryption key (DEK) into a first DEK and a second DEK and encrypting the first and second DEKs respectively, the DEK being used for encrypting the data to obtain the CT;
    means for when the deduplication policy indicates deduplication to be controlled by either of the AP or the data owner, transmitting in the data package the first and second CKs being equal to each other;
    means for when the deduplication policy indicates deduplication to be controlled by only the AP or only the data owner, transmitting in the data package only the first CK or only the second CK; and
    means for when the deduplication policy indicates deduplication to be controlled by none of the AP and the data owner, transmitting the plaintext in the data package.
  36. The apparatus according to claim 35, wherein the first DEK is encrypted with a public key of the AP according to a proxy re-encryption (PRE) scheme; and
    wherein the second DEK is encrypted based on an access policy, the access policy containing user identities (IDs) of users eligible for holding the data.
  37. The apparatus according to any one of claims 32-36, wherein the deduplication request for the data contains a user ID information;
    wherein means for issuing the attribute secret key for conducting deduplication comprises:
    means for verifying whether the user ID information represents a user eligible for holding the data; and
    means for in response to a positive verification result, generating the attribute secret key based on the user ID information.
  38. The apparatus according to any one of claims 34-37, further comprising:
    means for receiving a re-encrypted first CK for the second data from the data center;
    means for decrypting the re-encrypted first CK with a private key of the user device to obtain the first DEK;
    means for receiving an attribute secret key from an owner of the second data, and receiving the second CK for the second data from the owner of the second data or the data center;
    means for decrypting the second CK with the attribute secret key to obtain the second DEK;
    means for combining the first and second DEKs to obtain the DEK for deduplication.
  39. The apparatus according to any one of claims 32-38, further comprising:
    means for transmitting a request for deleting a data to the data center;
    means for in response to a request for a hash information corresponding to at least one index from the data center, transmitting a calculated hash information corresponding to the at least one index to the data center for verifying the holdership of the data;
    means for in response to a request to update the CT from the data center or at least one further data center, updating the CT according to a deduplication policy of the data.
  40. The apparatus according to claim 39, further comprising:
    means for when continuous deduplication control is needed, updating the CT according to an original deduplication policy of the data; and
    means for when no continuous deduplication control is needed, updating the CT according to a new deduplication policy, the new deduplication policy indicating deduplication to be controlled by only the AP.
  41. The apparatus according to any one of claims 32-40, further comprising:
    means for transmitting a request for updating a CT of a data to the data center, wherein a deduplication policy for the data is contained in the request or can be  determined according to the request, the deduplication policy indicating deduplication to be controlled by both or either of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner or none;
    means for when the deduplication policy indicates that data owner deduplication control is needed, issuing an attribute secret key to an eligible data holder according to an attribute based encryption (ABE) scheme for conducting deduplication when the attribute secret key is not sent before.
  42. The apparatus according to any one of claims 32-41, further comprising:
    means for receiving a re-encrypted updated first CK from the data center;
    means for decrypting the re-encrypted updated first CK with a private key of the user device to obtain the updated first DEK;
    means for receiving an attribute secret key from an owner of the data when it is not available, and receiving the updated second CK from the data center or the data owner;
    means for decrypting the updated second CK with the attribute secret key to obtain the updated second DEK;
    means for combining the updated first and second DEKs to obtain the updated DEK for deduplication.
  43. An apparatus for managing data storage in a communication network, the apparatus comprising:
    at least one processor; and
    at least one memory including computer-executable code,
    wherein the at least one memory and the computer-executable code are configured to, with the at least one processor, cause the apparatus to:
    receive from a first device, a request for storing a data in the apparatus;
    check whether the same data has been stored in the apparatus;
    in response to a check result that no same data has been stored in the apparatus, receive from the first device a data package containing at least the data in plaintext or ciphertext (CT) ;
    in response to a check result that the same data has been stored in the apparatus, obtain a deduplication policy for the data;
    when the deduplication policy indicates deduplication to be controlled by both or either of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner, contact both or either of the AP and the data owner, or only the AP, or only the data owner to conduct deduplication for the data; and
    when the deduplication policy indicates deduplication to be controlled by none of the AP and the data owner, conduct deduplication for the data.
  44. The apparatus according to claim 43, wherein the data package further contains an index list and a hash chain information, the index list including a plurality of indexes each indicating a specific part of the data, the hash chain information including a plurality of hash information each corresponding to one index;
    wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    request the first device to transmit a hash information corresponding to at least one index from the index list;
    verify whether the first device holds the data based on the hash information from the first device corresponding to the requested at least one index; and
    in response to a positive verification result, contact to conduct deduplication or record a deduplication information of the data for the first device.
  45. The apparatus according to claim 43 or 44, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    read the deduplication policy stored in advance in the data center, or receive the deduplication policy from the data owner, or determine the deduplication policy according to the data package.
  46. The apparatus according to any one of claims 43-45, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    when the data package further contains a first cipherkey (CK) and a second CK being not equal to each other, determine deduplication to be controlled by both of the AP and the data owner, the first and second CKs being generated by separating a data encryption key (DEK) into a first DEK and a second DEK and encrypting the first and second DEKs respectively, the DEK being used for encrypting the data to obtain the CT;
    when the data package further contains the first and second CKs being equal to each other, determine deduplication to be controlled by either of the AP or the data owner;
    when the data package further contains only the first CK or only the second CK, determine deduplication to be controlled by only the AP or only the data owner; and
    when the data package contains no CK, determine deduplication to be controlled by none of the AP and the data owner.
  47. The apparatus according to any one of claims 43-46, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    receive a re-encryption key from the AP when it is not available;
    re-encrypt the first CK with the re-encryption key according to a proxy re-encryption (PRE) scheme; and
    transmit the re-encrypted first CK to the first device such that the first device can decrypt the re-encrypted first CK with a secret key of the first device.
  48. The apparatus according to any one of claims 43-47, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    transmit an attribute identity (ID) of the first device to the data owner such that the data owner can issue an attribute secret key for the first device when it is eligible to decrypt the second CK according to an attribute based encryption (ABE) scheme.
  49. The apparatus according to any one of claims 43-48, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    in response to a check result that no same data has been stored in the apparatus, request at least one further data center to check whether the same data has been stored in it;
    in response to a positive reply from the at least one further data center, record a deduplication information of the data for the first device, wherein the at least one further data center is able to conduct deduplication for the data;
    in responce to a negative reply from the at least one further data center, performing data storage accordingly .
  50. The apparatus according to any one of claims 43-49, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    receive at the apparatus from a second device, a request for deleting a data;
    check whether the data is stored in the apparatus by the second device;
    in response to a positive check result, delete a record of storage of the data for the second device; delete the data when a deduplication record for the data is empty; and notify an owner of the datafor updating the CT when the deduplication record for the data is not empty; and
    in response to a negative check result, contact another data center that stores the data, wherein the another data center is able to delete a record of storage of the data for the second device.
  51. The apparatus according to claim 50, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    inquire whether the owner decides to continue deduplication control;
    in response to a positive decision, cooperate with the data owner to update the CT according to the deduplication policy of the data;
    in response to a negative decision, request another holder of the data for updating the CT, or cooperate with the data owner to update the CT according to a new deduplication policy, the new deduplication policy indicating deduplication to be controlled by only the AP.
  52. The apparatus according to any one of claims 47-51, further comprising:
    in response to a request for updating the CT of a data, obtain the deduplication policy for the data;
    when the deduplication policy indicates that AP deduplication control is needed, re-encrypt the updated first CK with the re-encryption key according to a PRE scheme; and
    transmit the re-encrypted updated first CK to the first device such that the first device can decrypt the re-encrypted updated first CK with a secret key of the first device;
    when the deduplication policy indicates that a deduplication control by the data owner is needed, informing the data owner the data identifier and the public key information of the data holder when necessary according to a ABE scheme in order to allow the data owner to perform data deduplication by issuing a secret key to the first device that can decrypt the updated second CK.
  53. An apparatus for managing data storage in a user device, the apparatus comprising:
    at least one processor; and
    at least one memory including computer-executable code,
    wherein the at least one memory and the computer-executable code are configured to, with the at least one processor, cause the apparatus to:
    transmit a request for storing a data to a data center;
    in response to a request for the data from the data center, transmit a data package containing at least the data in plaintext or ciphertext (CT) to the data center, wherein a deduplication policy for the data is contained in the data package or can be determined according to the data package, the deduplication policy indicating deduplication to be controlled by both or either or none of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner;
    in response to a deduplication request for the data from the data center or at least one further data center, issuing an attribute secret key to an eligible data holder according to an attribute based encryption (ABE) scheme for conducting deduplication.
  54. The apparatus according to claim 53, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    transmit in the data package an index list and a hash chain information for verifying holdership of the data for an eligible data holder, the index list including a plurality of indexes each indicating a specific part of the data, the hash chain information including a plurality of hash information each corresponding to one index.
  55. The apparatus according to claims 53 or 54, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    transmit a request for storing a second data to the data center;
    in response to a request for a hash information corresponding to at least one index from the data center, transmit a calculated hash information corresponding to the at least one index to the data center for verifying the holdership of the second data.
  56. The apparatus according to any one of claims 53-55, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    when the deduplication policy indicates deduplication to be controlled by both of the AP and the data owner, transmit in the data package a first cipherkey (CK) and a second CK being not equal to each other, the first and second CKs being generated by separating a data encryption key (DEK) into a first DEK and a second DEK and encrypting the first and second DEKs respectively, the DEK being used for encrypting the data to obtain the CT;
    when the deduplication policy indicates deduplication to be controlled by either of the AP or the data owner, transmit in the data package the first and second CKs being equal to each other;
    when the deduplication policy indicates deduplication to be controlled by only the AP or only the data owner, transmit in the data package only the first CK or only the second CK; and
    when the deduplication policy indicates deduplication to be controlled by none of the AP and the data owner, transmit the plaintext in the data package.
  57. The apparatus according to claim 56, wherein the first DEK is encrypted with a public key of the AP according to a proxy re-encryption (PRE) scheme; and
    wherein the second DEK is encrypted based on an access policy, the access policy containing user identities (IDs) of users eligible for holding the data.
  58. The apparatus according to any one of claim 53-57, wherein the deduplication request for the data contains a user ID information;
    wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    verify whether the user ID information represents a user eligible for holding the data; and
    in response to a positive verification result, generate the attribute secret key based on the user ID information.
  59. The apparatus according to any one of claims 55-58, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    receive a re-encrypted first CK for the second data from the data center;
    decrypt the re-encrypted first CK with a private key of the user device to obtain the first DEK;
    receive an attribute secret key from an owner of the second data, and receiving the second CK for the second data from the owner of the second data or the data center;
    decrypt the second CK with the attribute secret key to obtain the second DEK;
    combine the first and second DEKs to obtain the DEK for deduplication.
  60. The apparatus according to any one of claims 53-59, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    transmit a request for deleting a data to the data center;
    in response to a request for a hash information corresponding to at least one index from the data center, transmit a calculated hash information corresponding to the at least one index to the data center for verifying the holdership of the data;
    in response to a request to update the CT from the data center or at least one further data center, update the CT according to a deduplication policy of the data.
  61. The apparatus according to claim 60, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    when continuous deduplication control is needed, update the CT according to an original deduplication policy of the data; and
    when no continuous deduplication control is needed, update the CT according to a new deduplication policy, the new deduplication policy indicating deduplication to be controlled by only the AP.
  62. The apparatus according to any one of claims 53-61, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    transmit a request for updating a CT of a data to the data center, wherein a deduplication policy for the data is contained in the request or can be determined according to the request, the deduplication policy indicating deduplication to be controlled by both or either of an authorized party (AP) and an owner of the data, or only the AP, or only the data owner or none;
    when the deduplication policy indicates that data owner deduplication control is needed, issue an attribute secret key to an eligible data holder according to an attribute based encryption (ABE) scheme for conducting deduplication when the attribute secret key is not sent before.
  63. The apparatus according to any one of claims 53-62, wherein the computer-executable code are further configured to, when executed by the at least one processor, cause the apparatus to:
    receive a re-encrypted updated first CK from the data center or the data owner;
    decrypt the re-encrypted updated first CK with a private key of the user device to obtain the updated first DEK;
    receive an attribute secret key from an owner of the data when it is not available, and receiving the updated second CK from the data center;
    decrypt the updated second CK with the attribute secret key to obtain the updated second DEK;
    combine the updated first and second DEKs to obtain the updated DEK for deduplication.
  64. A computer program product comprising at least one non-transitory computer-readable storage medium having computer-executable program instructions stored therein, the computer-executable instructions being configured to, when being executed, cause an apparatus to operate according to any one of claims 1-21.
PCT/CN2015/071013 2015-01-19 2015-01-19 Method and apparatus for heterogeneous data storage management in cloud computing WO2016115663A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/CN2015/071013 WO2016115663A1 (en) 2015-01-19 2015-01-19 Method and apparatus for heterogeneous data storage management in cloud computing
CN201580073740.0A CN107113314B (en) 2015-01-19 2015-01-19 Method and device for heterogeneous data storage management in cloud computing
US15/542,952 US10581856B2 (en) 2015-01-19 2015-01-19 Method and apparatus for heterogeneous data storage management in cloud computing
EP15878341.5A EP3248354A4 (en) 2015-01-19 2015-01-19 Method and apparatus for heterogeneous data storage management in cloud computing
JP2017536778A JP6404481B2 (en) 2015-01-19 2015-01-19 Method and apparatus for managing heterogeneous data storage in cloud computing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/071013 WO2016115663A1 (en) 2015-01-19 2015-01-19 Method and apparatus for heterogeneous data storage management in cloud computing

Publications (1)

Publication Number Publication Date
WO2016115663A1 true WO2016115663A1 (en) 2016-07-28

Family

ID=56416249

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/071013 WO2016115663A1 (en) 2015-01-19 2015-01-19 Method and apparatus for heterogeneous data storage management in cloud computing

Country Status (5)

Country Link
US (1) US10581856B2 (en)
EP (1) EP3248354A4 (en)
JP (1) JP6404481B2 (en)
CN (1) CN107113314B (en)
WO (1) WO2016115663A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018188074A1 (en) * 2017-04-14 2018-10-18 Nokia Technologies Oy Secure encrypted data deduplication with efficient ownership proof and user revocation
CN110677487A (en) * 2019-09-30 2020-01-10 陕西师范大学 Outsourcing data duplicate removal cloud storage method supporting privacy and integrity protection

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10097429B2 (en) * 2015-11-25 2018-10-09 Fluke Corporation System and method for applying aggregated cable test result data
US10528751B2 (en) * 2017-04-13 2020-01-07 Nec Corporation Secure and efficient cloud storage with retrievability guarantees
US11263087B2 (en) * 2018-07-05 2022-03-01 EMC IP Holding Company LLC Methods and systems for serverless data deduplication
KR102172903B1 (en) * 2019-12-09 2020-11-02 (주)트러스트체인파트너스위드하모니 Database management system based on blockchain technology
CN111404960B (en) * 2020-03-26 2022-02-25 军事科学院系统工程研究院网络信息研究所 Attribute extraction method applied to heaven-earth integrated network access control system
EP4318114A1 (en) * 2021-03-24 2024-02-07 Toyobo Co., Ltd. Image display device, and method for selecting combination of backlight light source and polarizing plate in liquid crystal display device
CN114598535B (en) * 2022-03-14 2023-12-15 太原科技大学 CP-ABE agent re-encryption method based on cloud computing multi-authorization center

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104393A1 (en) * 2006-09-28 2008-05-01 Microsoft Corporation Cloud-based access control list
CN102014133A (en) * 2010-11-26 2011-04-13 清华大学 Method for implementing safe storage system in cloud storage environment
CN102546764A (en) * 2011-12-20 2012-07-04 华中科技大学 Safe access method of cloud storage system
CN102629940A (en) * 2012-03-19 2012-08-08 天津书生投资有限公司 Storage method, system and device
CN103095847A (en) * 2013-02-04 2013-05-08 华中科技大学 Cloud storage safety-ensuring method and system thereof

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6598161B1 (en) 1999-08-09 2003-07-22 International Business Machines Corporation Methods, systems and computer program products for multi-level encryption
EP1271951A1 (en) 2001-06-22 2003-01-02 Octalis S.A. Conditional access system for digital data by key decryption and re-encryption
JP2006345160A (en) 2005-06-08 2006-12-21 Base Technology Inc Information communication system
JP2007129413A (en) 2005-11-02 2007-05-24 Ntt Data Corp Information processing system and computer program
US8094810B2 (en) * 2006-02-03 2012-01-10 Massachusetts Institute Of Technology Unidirectional proxy re-encryption
WO2007130502A2 (en) * 2006-04-29 2007-11-15 Navio Systems, Inc. Enhanced title processing arrangement
WO2008090779A1 (en) 2007-01-26 2008-07-31 Nec Corporation Right management method, its system, server device used in the system, and information device terminal
KR20090002660A (en) 2007-07-02 2009-01-09 삼성전자주식회사 Method for reproducing and approving playback of encrypted contents and apparatus thereof
CN101939737A (en) 2008-01-16 2011-01-05 赛帕顿有限公司 Scalable de-duplication mechanism
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US8397084B2 (en) * 2008-06-12 2013-03-12 Microsoft Corporation Single instance storage of encrypted data
US7814149B1 (en) * 2008-09-29 2010-10-12 Symantec Operating Corporation Client side data deduplication
JP5113717B2 (en) 2008-10-27 2013-01-09 Kddi株式会社 Mobile communication network system
US8312276B2 (en) 2009-02-06 2012-11-13 Industrial Technology Research Institute Method for sending and receiving an evaluation of reputation in a social network
JP5255499B2 (en) 2009-03-30 2013-08-07 株式会社エヌ・ティ・ティ・ドコモ Key information management method, content transmission method, key information management device, license management device, content transmission system, and terminal device
US8285681B2 (en) * 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US9058298B2 (en) 2009-07-16 2015-06-16 International Business Machines Corporation Integrated approach for deduplicating data in a distributed environment that involves a source and a target
US8874929B2 (en) 2009-10-27 2014-10-28 Lockheed Martin Corporation Cross domain discovery
WO2011070393A1 (en) 2009-12-07 2011-06-16 Nokia Corporation Preservation of user data privacy in a network
EP2513832A1 (en) * 2009-12-18 2012-10-24 Koninklijke Philips Electronics N.V. Digital rights management using attribute-based encryption
US8977853B2 (en) 2010-01-06 2015-03-10 Telcordia Technologies, Inc. System and method establishing trusted relationships to enable secure exchange of private information
CN102244576A (en) 2010-05-10 2011-11-16 国民技术股份有限公司 System and method for realizing terminal safety storage
US8931048B2 (en) 2010-08-24 2015-01-06 International Business Machines Corporation Data system forensics system and method
US8645702B2 (en) 2010-12-28 2014-02-04 Futurewei Technologies, Inc. Method and apparatus to use identity information for digital signing and encrypting content integrity and authenticity in content oriented networks
US8943023B2 (en) * 2010-12-29 2015-01-27 Amazon Technologies, Inc. Receiver-side data deduplication in data systems
WO2012158654A2 (en) 2011-05-14 2012-11-22 Bitcasa, Inc. Cloud file system with server-side deduplication of user-agnostic encrypted files
US9805054B2 (en) * 2011-11-14 2017-10-31 Panzura, Inc. Managing a global namespace for a distributed filesystem
CN102571746B (en) 2011-11-23 2014-11-05 西安交通大学 Virtual machine deployment method oriented to side channel attack defense of cloud computation environment
WO2013085519A1 (en) 2011-12-08 2013-06-13 Empire Technology Development, Llc Storage discounts for allowing cross-user deduplication
KR20130064518A (en) * 2011-12-08 2013-06-18 삼성전자주식회사 Storage device and operation method thereof
US20140075193A1 (en) * 2012-03-19 2014-03-13 Donglin Wang Storage method
US8903764B2 (en) * 2012-04-25 2014-12-02 International Business Machines Corporation Enhanced reliability in deduplication technology over storage clouds
CN104620535A (en) * 2012-08-17 2015-05-13 皇家飞利浦有限公司 Attribute-based encryption
CN104641591B (en) 2012-09-21 2018-02-02 诺基亚技术有限公司 For providing the method and apparatus to the access control of shared data based on level of trust
US20140108332A1 (en) * 2012-10-17 2014-04-17 Dell Products L.P. System and method for migration and deduplication of digital assets
US20150304329A1 (en) 2012-10-23 2015-10-22 Nokia Technologies Oy Method and apparatus for managing access rights
US9164926B2 (en) * 2012-11-22 2015-10-20 Tianjin Sursen Investment Co., Ltd. Security control method of network storage
US9390101B1 (en) * 2012-12-11 2016-07-12 Veritas Technologies Llc Social deduplication using trust networks
US9471590B2 (en) * 2013-02-12 2016-10-18 Atlantis Computing, Inc. Method and apparatus for replicating virtual machine images using deduplication metadata
FR3003968A1 (en) 2013-03-28 2014-10-03 France Telecom METHOD FOR STORING DATA IN A COMPUTER SYSTEM COMPRISING DATA DEDUPLICATION
US9202076B1 (en) * 2013-07-26 2015-12-01 Symantec Corporation Systems and methods for sharing data stored on secure third-party storage platforms
US20150066873A1 (en) * 2013-08-30 2015-03-05 Kaladhar Voruganti Policy based deduplication techniques
US9367559B1 (en) * 2013-10-01 2016-06-14 Veritas Technologies Llc Data locality control for deduplication
CN103763362B (en) * 2014-01-13 2016-12-21 西安电子科技大学 A kind of safe distributed data de-duplication method
US9076004B1 (en) * 2014-05-07 2015-07-07 Symantec Corporation Systems and methods for secure hybrid third-party data storage
US9397832B2 (en) * 2014-08-27 2016-07-19 International Business Machines Corporation Shared data encryption and confidentiality

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104393A1 (en) * 2006-09-28 2008-05-01 Microsoft Corporation Cloud-based access control list
CN102014133A (en) * 2010-11-26 2011-04-13 清华大学 Method for implementing safe storage system in cloud storage environment
CN102546764A (en) * 2011-12-20 2012-07-04 华中科技大学 Safe access method of cloud storage system
CN102629940A (en) * 2012-03-19 2012-08-08 天津书生投资有限公司 Storage method, system and device
CN103095847A (en) * 2013-02-04 2013-05-08 华中科技大学 Cloud storage safety-ensuring method and system thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3248354A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018188074A1 (en) * 2017-04-14 2018-10-18 Nokia Technologies Oy Secure encrypted data deduplication with efficient ownership proof and user revocation
CN110677487A (en) * 2019-09-30 2020-01-10 陕西师范大学 Outsourcing data duplicate removal cloud storage method supporting privacy and integrity protection
CN110677487B (en) * 2019-09-30 2022-04-26 中科柏诚科技(北京)股份有限公司 Outsourcing data duplicate removal cloud storage method supporting privacy and integrity protection

Also Published As

Publication number Publication date
CN107113314A (en) 2017-08-29
US20180034819A1 (en) 2018-02-01
CN107113314B (en) 2020-06-19
JP2018508864A (en) 2018-03-29
EP3248354A1 (en) 2017-11-29
JP6404481B2 (en) 2018-10-10
US10581856B2 (en) 2020-03-03
EP3248354A4 (en) 2018-08-15

Similar Documents

Publication Publication Date Title
US10581856B2 (en) Method and apparatus for heterogeneous data storage management in cloud computing
CN107113165B (en) Method and device for managing repeated data in cloud computing
US10659222B2 (en) Orthogonal access control for groups via multi-hop transform encryption
EP2912800B1 (en) Methods and apparatus for data access control
US10546141B2 (en) Network system, and methods of encrypting data, decrypting encrypted data in the same
JP6363032B2 (en) Key change direction control system and key change direction control method
Yan et al. A scheme to manage encrypted data storage with deduplication in cloud
Wang et al. Data integrity checking with reliable data transfer for secure cloud storage
US9292532B2 (en) Remote data storage
Yu et al. Identity privacy-preserving public auditing with dynamic group for secure mobile cloud storage
US20180063105A1 (en) Management of enciphered data sharing
Murugesan et al. Analysis on homomorphic technique for data security in fog computing
US11985250B2 (en) Anonymous broadcast method, key exchange method, anonymous broadcast system, key exchange system, communication device, and program
WO2018188074A1 (en) Secure encrypted data deduplication with efficient ownership proof and user revocation
US10015144B2 (en) Method and system for protecting data using data passports
Bhandari et al. A framework for data security and storage in Cloud Computing
Tu et al. A secure, efficient and verifiable multimedia data sharing scheme in fog networking system
US11258588B2 (en) Key exchange method and key exchange system
Ni et al. Secure outsourced data transfer with integrity verification in cloud storage
Zhu et al. An edge re‐encryption‐based access control mechanism in NDN
Indu et al. Secure file sharing mechanism and key management for mobile cloud computing environment
Huang et al. Adaptive Secure Cross‐Cloud Data Collaboration with Identity‐Based Cryptography and Conditional Proxy Re‐Encryption
JP6840685B2 (en) Data sharing method, data sharing system, communication terminal, data sharing server, program
CN113824713B (en) Key generation method, system and storage medium
Salim et al. An efficient public auditing scheme for cloud storage with secure access control and resistance against DOS attack by iniquitous TPA

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15878341

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2015878341

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2017536778

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE