WO2018000317A1 - Secure data processing - Google Patents

Secure data processing Download PDF

Info

Publication number
WO2018000317A1
WO2018000317A1 PCT/CN2016/087876 CN2016087876W WO2018000317A1 WO 2018000317 A1 WO2018000317 A1 WO 2018000317A1 CN 2016087876 W CN2016087876 W CN 2016087876W WO 2018000317 A1 WO2018000317 A1 WO 2018000317A1
Authority
WO
WIPO (PCT)
Prior art keywords
ciphertext
computation
data
identifier
party
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/CN2016/087876
Other languages
French (fr)
Inventor
Wenxiu DING
Zheng Yan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Beijing Co Ltd
Nokia Technologies Oy
Original Assignee
Nokia Technologies Beijing Co Ltd
Nokia Technologies Oy
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 Beijing Co Ltd, Nokia Technologies Oy filed Critical Nokia Technologies Beijing Co Ltd
Priority to CN201680088554.9A priority Critical patent/CN109644128A/en
Priority to US16/314,196 priority patent/US20190229887A1/en
Priority to PCT/CN2016/087876 priority patent/WO2018000317A1/en
Publication of WO2018000317A1 publication Critical patent/WO2018000317A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Definitions

  • the present invention relates to processing information in encrypted form, for example in a cloud service provision environment.
  • Cloud computing services provide off-site opportunities for individuals and corporations.
  • cloud storage service enables off-site storage of data sets in a flexible manner in a data centre, reducing the need for users of the cloud service to obtain their own storage hardware, for example for archiving purposes.
  • a further example of a cloud service is a cloud processing service, wherein a user is given access to processor resources at a computer or computing grid. This may be useful, for example where a user needs access to high-capacity computing intermittently, and obtaining actual high-capacity computing hardware would be wasteful as the hardware would mostly be unused, since the need is only intermittent.
  • Cloud services may be used to back up their data, for example during operating system updates of their devices, such as computers, smartphones and laptops.
  • Some smart devices are configured to automatically upload images captured by users to a cloud storage service.
  • cloud services While useful, cloud services present high risk to users. Personal information may accidentally, or purposefully, be stored on a cloud storage service. Such personal information may become vulnerable to theft, unauthorised modification or eavesdropping either during transit to or from the cloud storage service, or while in the cloud storage service.
  • the cloud service provider may be untrusted or only partially trusted.
  • the cloud service may be distributed between several data centres, and customer data may be communicated between such data centres to balance load between the centres. Such communication presents additional risk of eavesdropping.
  • an apparatus comprising at least one processing core, at least one memory including computer program code, the at least one memory and the computer program code being configured to, with the at least one processing core, cause the apparatus at least to receive, from a data provider, a first ciphertext, perform a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier, obtain a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and provide the second ciphertext to a first computation party.
  • Various embodiments of the first aspect may comprise at least one feature from the following bulleted list:
  • the apparatus is configured to obtain the computation identifier from the first computation party
  • the apparatus is further configured to participate in negotiating a shared secret with the first computation party
  • the second ciphertext is not decryptable solely by a secret key of the first computation party
  • the apparatus is further configured to obtain a key pair comprising a public key of the apparatus and a secret key of the apparatus
  • the computation identifier identifies at least one of the following processes: addition, subtraction, multiplication, sign acquisition, comparison, equivalence test and variance
  • the apparatus is further configured to obtain a third ciphertext from the first ciphertext, to provide the third ciphertext to a second computation party, and to obtain a fourth ciphertext from responses received in the apparatus from the first computation party and the second computation party, and to obtain an encrypted result of a computation process identified by the computation identifier.
  • an apparatus comprising at least one processing core, at least one memory including computer program code, the at least one memory and the computer program code being configured to, with the at least one processing core, cause the apparatus at least to determine, based on a message from a data requester, a computation identifier, transmit a request to a data service provider, the request comprising the computation identifier, receive, from the data service provider, a first ciphertext, obtain a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and provide the second ciphertext to the data requester as a response to the message.
  • Various embodiments of the second aspect may comprise at least one feature from the following bulleted list:
  • the apparatus is further configured to check an access policy before providing the request to the data service provider
  • the apparatus is further configured to participate in negotiating a shared secret with the data service provider
  • the negotiating comprises a Diffie-Hellman negotiation
  • the apparatus is configured to perform the cryptographic re-encryption operation in dependence of the computation identifier
  • the computation identifier identifies one of the following computation processes: addition, subtraction, multiplication, sign acquisition, comparison, equivalence test and variance.
  • a method comprising receiving, from a data provider, a first ciphertext, performing a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier, obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and providing the second ciphertext to a first computation party.
  • Various embodiments of the third aspect may comprise at least one feature corresponding to a feature from the preceding bulleted list laid out in connection with the first aspect.
  • a method comprising determining, based on a message from a data requester, a computation identifier, transmitting a request to a data service provider, the request comprising the computation identifier, receiving, from the data service provider, a first ciphertext, obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and providing the second ciphertext to the data requester as a response to the message.
  • Various embodiments of the fourth aspect may comprise at least one feature corresponding to a feature from the preceding bulleted list laid out in connection with the second aspect.
  • a system comprising an apparatus according to the first aspect, an apparatus according to the second aspect, a data requester and a data provider.
  • an apparatus comprising means for receiving, from a data provider, a first ciphertext, means for performing a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier, means for obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and means for providing the second ciphertext to a first computation party.
  • an apparatus comprising means for obtaining a key pair comprising a public key of an apparatus and a secret key of the apparatus, means for determining, based on a message from a data requester, a computation identifier, means for transmitting a request to a data service provider, the request comprising the computation identifier and a public key of the data requester, means for receiving, from the data service provider, a first ciphertext, means for obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and means for providing the second ciphertext to the data requester as a response to the message.
  • a non-transitory computer readable medium having stored thereon a set of computer readable instructions that, when executed by at least one processor, cause an apparatus to at least receive, from a data provider, a first ciphertext, perform a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier, obtain a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and provide the second ciphertext to a first computation party.
  • a non-transitory computer readable medium having stored thereon a set of computer readable instructions that, when executed by at least one processor, cause an apparatus to at least obtain a key pair comprising a public key of an apparatus and a secret key of the apparatus, determine, based on a message from a data requester, a computation identifier, transmit a request to a data service provider, the request comprising the computation identifier and a public key of the data requester, receive, from the data service provider, a first ciphertext, obtain a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and provide the second ciphertext to the data requester as a response to the message.
  • a computer program configured to cause a method in accordance with at least one of the third and fourth aspects to be performed.
  • FIGURE 1 illustrates an example system in accordance with at least some embodiments of the present invention
  • FIGURE 2 illustrates an example system in accordance with at least some embodiments of the present invention.
  • FIGURE 3 illustrates an example apparatus capable of supporting at least some embodiments of the present invention
  • FIGURE 4 illustrates signalling in accordance with at least some embodiments of the present invention
  • FIGURE 5 is a flow graph of a method in accordance with at least some embodiments of the present invention.
  • FIGURE 6 is a flow graph of a method in accordance with at least some embodiments of the present invention.
  • Confidential processing of data in a cloud service may be obtained by dividing processing into parts, the processing being conducted on encrypted data, which is known as ciphertext.
  • a two-level decryption process is used with two service provision entities, a data service provider and a computation party, which co-operate to jointly perform secure processing of data and deliver processed data in encrypted form to a data requesting party.
  • the data requesting party may be a same party as the one that provided the data, that it, a data provider.
  • At least some embodiments of the invention operate using homomorphic re-encryption.
  • the data service provider may receive a computation identifier and perform a mathematical manipulation of a first ciphertext, to thereby modify a plaintext underlying the first ciphertext.
  • the data service provider may perform a computation on plaintext of the first ciphertext, without decrypting the first ciphertext, by mathematically manipulating the first ciphertext.
  • the manipulation, and/or corresponding modification of the plaintext is identified by the computation identifier.
  • the data service provider may re-encrypt the manipulated first ciphertext to obtain a second ciphertext.
  • the re-encrypting may comprise use of a secret key of the data service provider and a public key of a data requester, for example.
  • the re-encrypting may be performed in dependence of the computation identifier.
  • Re-encrypting may comprise at least partial decryption followed by encryption.
  • FIGURE 1 illustrates an example system in accordance with at least some embodiments of the present invention.
  • the system comprises data service provider 120, which may comprise a cloud data storage data centre or cloud data centre system, for example.
  • Data service provider 120 may also be a cloud processing service provider.
  • a cloud data centre system may comprise a plurality of data centres, with load balancing arranged in a suitable manner between individual data centres comprised in the plurality.
  • data service provider 120 may be configured to store data and provide some computation services.
  • the system of FIGURE 1 further comprises at least one computation party 130.
  • Computation party 130 may comprise a processing-enabled computing entity, such as, for example, a data centre, data centre system, server, server farm or indeed an individual networked computer such as a desktop or a laptop.
  • computation party 130 may be configured to provide data computation services and/or data access control for its users.
  • CP computation parties
  • the system of FIGURE 1 further comprises at least one data provider 110.
  • Data provider 110 may comprise a data owner, such as, for example, a consumer, corporation or government entity, for example.
  • data provider 110 may generate the data.
  • Data may be provided by an X-ray device or body scanner where data provider 110 is a medical entity, such as a clinic or hospital.
  • Data may be generated in an industrial process or a design tool where data provider 110 is a corporate entity, such as a manufacturer or engineering company.
  • Data may be generated in a radar or flight control facility where data provider 110 is a government entity, such as a military or aviation authority.
  • Data provider 110 may be configured to provide data in encrypted form to data service provider 120.
  • the system of FIGURE 1 further comprises data requester 140.
  • Data requester 140 may comprise an entity authorised by data provider 110 to access, at least partly, data owned and/or generated by data provider 110. Data requester 140 may need the data of data provider 110 in a processed form. Data requester 140 may be the same entity as data provider 110.
  • data provider 110, data service provider 120, computation party 130 and data requester 140 may be seen as roles or functions that may be assumed and performed by different kinds of entities. As indicated above, data provider 110 and data requester 140 may be one and the same. On the other hand, data service provider 120 and computation party 130 are not physically the same entity. In detail, data service provider 120 need not be trusted by data provider 110, while computation party 130 may be trusted by data provider 110.
  • connection 112 enables data provider 110 to transmit ciphertext to data service provider 120.
  • Connection 142 enables communication between data requester 140 and data service provider 120.
  • Connection 123 enables communication between computation party 130 and data service provider 120.
  • connection 143 enables communication between data requester 140 and computation party 130.
  • the connections may be wired or, at least partly, wireless, connections, where applicable.
  • FIGURE 2 illustrates an example system in accordance with at least some embodiments of the present invention. Like numbering denotes like structure as in FIGURE 1.
  • FIGURE 2 corresponds to the case, where data requester 140 is the same entity as data provider 110. For example, this is the case where a data owner requests a cloud data processing result of his own data.
  • ciphertext processing results should be only accessed by authorized requesters.
  • a data processing party such as a cloud service provider, should not be able to access the results if it cannot be fully trusted by the data owner.
  • the problem of privacy-preserving data aggregation with a distrusted aggregator has been studied, but such studies only describe systems that allow the aggregator to access the final aggregated results. Such schemes cannot satisfy the practical security requirement.
  • a re-encryption scheme which can flexibly support access control on encrypted-data computation results with two-level decryption. Furthermore, the proposed re-encryption scheme is applied to realize a number of operations over ciphertexts including addition, subtraction, multiplication, sign acquisition, comparison, equivalent test, and variance, which may support various applications that request processing of encrypted data and/or analytics thereof.
  • DSP data service provider
  • CP computation party
  • DSP 120 collects and stores the data in an encrypted form from a number of data providers, DP, 110.
  • DP data provider
  • CP 130 may first check an access right of DR 140.
  • CP 130 contacts DSP 120 to further process the ciphertext with a re-encryption process for the DR 140, and then CP 130 may provide the re-encryption result to the authorized DR 140 for decryption.
  • the described scheme supports multiple CPs 130 served by different companies for distributed data processing and access control.
  • DSP 120 and CP 130 together produce the ciphertext, with contents of the ciphertext processed as requested by DR 140, such that DSP 120 does not obtain access to the contents of the ciphertext despite DSP 120 participating in performing the requested processing.
  • a new cryptographic primitive which uses two service providers, DSP 120 and CP 130, to manage encrypted data and realizes re-encryption over homomorphic encryption.
  • the primitive enables processing and analysis of ciphertext. Only authorized users can access the encrypted data processing result in a secure way.
  • Paillier s cryptosystem, as described in Paillier: “Public key cryptosystems based on composite degree residuosity classes” (Advances in cryptology, EUROCRYPT 1999, pp. 223-238) is one of the most important additive homomorphic encryption systems.
  • the additive homomorphic encryption satisfies the following equation:
  • D sk () is the corresponding homomorphic decryption algorithm with secret key sk.
  • Paillier see above
  • ElGamal A public key cryptosystem and a signature scheme based on discrete algorithms” (Advances in cryptology, Springer, 1985, pp 10-18. ) and Bresson et al. “A simple public-key cryptosystem with a double trapdoor decryption mechanism and its applications” , (Advances in cryptology, ASIACRYPT 2003, Springer, pp. 37-54) .
  • EDD Electronic Datagram Deformation
  • D. Catalano and D. Pointcheval “A simple public-key cryptosystem with a double trapdoor decryption mechanism and its applications” (Advances in Cryptology, ASIACRYPT, 2003, pp. 37 -54, Springer, 2003) , which is a variant of Cramper-Shoup “Universal hash proofs and a paradigm for adaptive chosen ciphertext secure public-key encryption” (Advances in cryptology, EUROCRYPT 2002, pp. 45-64) .
  • g and h be two elements of maximal order in Note that, if h is computed as g x , where x ⁇ R [1, ⁇ (n 2 ) ] , then x is coprime with ord with high probability, and thus h is of maximal order.
  • the PRE is based on Cramper-Shoup and EDD. It has the same operation of key generation as EDD. Thus, we skip it and focus on re-encryption operation.
  • the share x 1 is given to the proxy, while x 2 is kept by Entity B.
  • the public system parameters include ⁇ g, n, PK ⁇ .
  • the Original Encryption scheme is directly obtained from EDD.
  • Encryption For a personal purpose, a user can outsource private data with its own key pair, which can ensure the unavailability of data to other entities. It can also be used to send data to a specified target. User encrypts their data with the public key of user i and a random r ⁇ [1, n/4] as follows:
  • Decryption (Dec) : Upon receiving the encrypted data under its own public key, user i can directly decrypt it to obtain the original data:
  • the following encryption is a Two-Level Decryption scheme that can support outsourced data processing flexibly.
  • [m i ] denotes the ciphertext of m i encrypted with PK, which can only be decrypted under the cooperation of the DSP and the CP. denotes the data that is encrypted with pk i , which can be decrypted by user i.
  • Partial Decryption with SK CP (PDec2) : Once the message is received, the CP can directly decrypt it with its own secret key as follows:
  • FPRE First Phase of Re-Encryption
  • SPRE Second Phase of Re-Encryption
  • FIGURE 3 illustrates an example apparatus capable of supporting at least some embodiments of the present invention.
  • device 300 which may comprise, for example, a DP 110, DSP 120, CP 130 or DR 140 of FIGURE 1 or FIGURE 2.
  • processor 310 which may comprise, for example, a single-or multi-core processor wherein a single-core processor comprises one processing core and a multi-core processor comprises more than one processing core.
  • Processor 310 may comprise more than one processor.
  • a processing core may comprise, for example, a Cortex-A8 processing core manufactured by ARM Holdings or a Steamroller processing core produced by Advanced Micro Devices Corporation.
  • Processor 310 may comprise at least one Qualcomm Snapdragon and/or Intel Atom processor.
  • Processor 310 may comprise at least one application-specific integrated circuit, ASIC. Processor 310 may comprise at least one field-programmable gate array, FPGA. Processor 310 may be means for performing method steps in device 300. Processor 310 may be configured, at least in part by computer instructions, to perform actions.
  • ASIC application-specific integrated circuit
  • FPGA field-programmable gate array
  • Device 300 may comprise memory 320.
  • Memory 320 may comprise random-access memory and/or permanent memory.
  • Memory 320 may comprise at least one RAM chip.
  • Memory 320 may comprise solid-state, magnetic, optical and/or holographic memory, for example.
  • Memory 320 may be at least in part accessible to processor 310.
  • Memory 320 may be at least in part comprised in processor 310.
  • Memory 320 may be means for storing information.
  • Memory 320 may comprise computer instructions that processor 310 is configured to execute. When computer instructions configured to cause processor 310 to perform certain actions are stored in memory 320, and device 300 overall is configured to run under the direction of processor 310 using computer instructions from memory 320, processor 310 and/or its at least one processing core may be considered to be configured to perform said certain actions.
  • Memory 320 may be at least in part comprised in processor 310.
  • Memory 320 may be at least in part external to device 300 but accessible to device 300.
  • Device 300 may comprise a transmitter 330.
  • Device 300 may comprise a receiver 340.
  • Transmitter 330 and receiver 340 may be configured to transmit and receive, respectively, information in accordance with at least one cellular or non-cellular standard.
  • Transmitter 330 may comprise more than one transmitter.
  • Receiver 340 may comprise more than one receiver.
  • Transmitter 330 and/or receiver 340 may be configured to operate in accordance with global system for mobile communication, GSM, wideband code division multiple access, WCDMA, long term evolution, LTE, IS-95, wireless local area network, WLAN, Ethernet and/or worldwide interoperability for microwave access, WiMAX, standards, for example.
  • Device 300 may comprise a near-field communication, NFC, transceiver 350.
  • NFC transceiver 350 may support at least one NFC technology, such as NFC, Bluetooth, Wibree or similar technologies.
  • Device 300 may comprise user interface, UI, 360.
  • UI 360 may comprise at least one of a display, a keyboard, a touchscreen, a vibrator arranged to signal to a user by causing device 300 to vibrate, a speaker and a microphone.
  • a user may be able to operate device 300 via UI 360, for example to manage ciphertext-form data.
  • Device 300 may comprise or be arranged to accept a user identity module 370.
  • User identity module 370 may comprise, for example, a subscriber identity module, SIM, card installable in device 300.
  • a user identity module 370 may comprise information identifying a subscription of a user of device 300.
  • a user identity module 370 may comprise cryptographic information usable to verify the identity of a user of device 300 and/or to facilitate encryption of communicated information and billing of the user of device 300 for communication effected via device 300.
  • Processor 310 may be furnished with a transmitter arranged to output information from processor 310, via electrical leads internal to device 300, to other devices comprised in device 300.
  • a transmitter may comprise a serial bus transmitter arranged to, for example, output information via at least one electrical lead to memory 320 for storage therein.
  • the transmitter may comprise a parallel bus transmitter.
  • processor 310 may comprise a receiver arranged to receive information in processor 310, via electrical leads internal to device 300, from other devices comprised in device 300.
  • Such a receiver may comprise a serial bus receiver arranged to, for example, receive information via at least one electrical lead from receiver 340 for processing in processor 310.
  • the receiver may comprise a parallel bus receiver.
  • Device 300 may comprise further devices not illustrated in FIGURE 3.
  • device 300 may comprise at least one digital camera.
  • Some devices 300 may comprise a back-facing camera and a front-facing camera, wherein the back-facing camera may be intended for digital photography and the front-facing camera for video telephony.
  • Device 300 may comprise a fingerprint sensor arranged to authenticate, at least in part, a user of device 300.
  • device 300 lacks at least one device described above.
  • some devices 300 may lack a NFC transceiver 350 and/or user identity module 370.
  • Processor 310, memory 320, transmitter 330, receiver 340, NFC transceiver 350, UI 360 and/or user identity module 370 may be interconnected by electrical leads internal to device 300 in a multitude of different ways.
  • each of the aforementioned devices may be separately connected to a master bus internal to device 300, to allow for the devices to exchange information.
  • this is only one example and depending on the embodiment various ways of interconnecting at least two of the aforementioned devices may be selected without departing from the scope of the present invention.
  • FIGURE 4 illustrates signalling in accordance with at least some embodiments of the present invention.
  • DP 110 Downlink Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packe, PDA 110, DP 110, DSP 120, CP 130 and DR 140. Time advances from the top toward the bottom.
  • DSP 120 Downlink Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Packet Pack
  • Phase 410 which takes place in all the four entities, comprises a system setup phase.
  • DP 110 that is, user i, generates its own key pair by randomly choosing k i ⁇ [1, n/4] , and then registers at the CP.
  • the public parameters are and the public keys of all involved entities.
  • each CP 130 may negotiate a Diffie-Hellman key with the DSP 120 and publish this key to its customers. For simplifying presentation, we only present the detailed operations in the case that there is only one CP 130 interacting with the DSP 120 as below.
  • Phase 420 comprises a data upload from DP 110 to DSP 120.
  • DPs 110 encrypt their data before uploading it to the DSP 120.
  • DP i 110 calls EncTK () to encrypt data m i :
  • the length of the data may be restricted Then DP i 110 uploads and stores [m i ] at the DSP 120.
  • Phase 430 comprises DR 140 requesting the data uploaded in phase 420, by signalling to CP 130.
  • the request of phase 430 may comprise a computation identifier, CID.
  • the request may comprise a request to obtain the data in processed and encrypted form.
  • the request may comprise a public key of DR 140.
  • Phase 440 may comprise CP 130 assessing, whether DR 140 is authorized to access the data. In case no, processing may stop here. In case DR 140 is authorized, CP 130 may forward the request to DSP 120, the forwarding being illustrated in FIGURE 4 as phase 450. The forwarded request may likewise comprise the CID, and/or a public key of DR 140.
  • Phase 460 comprises DSP 120 pre-processing the requested data, upon receiving the request from DR 140 authorized by CP 130, according to the computation identifier CID by calling the algorithm FPRE(), which is described above, to prepare data packet DPacket for CP 130.
  • Phase 470 comprises DSP 120 providing the processed data, DPacket, to CP 130.
  • Phase 460 may further comprise DSP 120 performing a mathematical manipulation of the data in encrypted form, in dependence of the CID.
  • Phase 480 comprises CP 130 further processing DPacket, received from DSP 120, by calling the algorithm SPRE() to obtain DPacket′.
  • Algorithm SPRE() is described above.
  • phase 480 may comprise CP 130 transferring DPacket under DR 140’s public key using a different method, such as by first using PDec2() and then Enc(). These algorithms are described above.
  • DPacket’ is provided to DR 140 as a response to the request of phase 430. Once DR 140 has DPacket’ , it may decrypt it, for example by calling algorithm DPRE() to obtain the data.
  • DPRE() is described above.
  • the HRES primitive may support seven basic operations, indicated by different CID: 1) addition; 2) subtraction; 3) multiplication; 4) sign acquisition; 5) comparison; 6) equivalent Test; and 7) variance.
  • Phase 460 (Data Preparation at DSP) : Due to the additive homomorphism, the DSP can directly multiply encrypted data one by one as following:
  • the DSP further calls the algorithm FPRE () to process the data with its own secret key and DR j’s public key pk j :
  • the DSP finally prepares a data packet ( [m] + , CID) and sends it to the CP.
  • Phase 480 (Data Process at CP) : The CP calls the second re-encryption algorithm SPRE () to finally transfer the encrypted data to the ciphertext under DR j’s public key:
  • the CP sends ( CID) to the DR.
  • Phase 490 (Data Access at DR) :
  • the DR can obtain the aggregated result by calling the algorithm DPRE () :
  • the HRES has an additional property as follows:
  • Multiplication This function aims to obtain the product of all raw data For ease of presentation, we describe the details with two pieces of data ( [m 1 ] , [m 2 ] ) .
  • the DSP does one exponentiation and one decryption with its own secret key by calling PDec1 () . Then the DSP encrypts c 3 with Enc () using the public key pk j of the requesting DR:
  • the data packet sent to the CP 130 is
  • Phase 480 (Data Process at CP) : Upon receiving the data packet from the CSP, the CP uses the algorithm PDec2 () to decrypt the data:
  • Phase 490 (Data Access at DR) : the DR 140 can obtain the product by calling Dec () to decrypt the two ciphertexts with its secret key:
  • Phase 460 (Data Preparation at DSP) : The DSP chooses a random number c 1 where It first computes
  • the DSP also encrypts s with pk j through Enc () :
  • the data packet sent to the CP is
  • DR j wants to compare the raw data (m 1 , m 2 ) based on their encrypted data.
  • m 1 -m 2 is denoted as m 1-2 .
  • Phase 460 (Data Preparation at DSP) : DSP first computes to get the subtraction of encrypted data:
  • DR j 140 may want to get the variance of some data according to provided encrypted data.
  • Phase 460 (Data Preparation at DSP) : First, the DSP 120 obtains through following steps:
  • [-m] (T n-1 , (T′) n-1 ) ;
  • the DSP 120 chooses three random numbers c 1 , c 2 , c 3 , and computes to obtain:
  • DSP 120 send the three ciphertexts to the CP 130.
  • DSP 120 needs to store c 1 2 , c 2 2 , c 3 2 .
  • Phase 480 (Data Process at CP) : Upon receiving the data from the DSP, the CP directly decrypts to obtain raw data and then processes the data for DR j as follows:
  • DSP 120 can prepare the final result for DR j:
  • Phase 490 (Data Access at DR) : DR j can obtain M′by calling Dec () and then get the variance:
  • M′ (N*m 1 -m) 2 + (N*m 2 -m) 2 + (N*m 1 -m) 2 ;
  • M M′/N 3 .
  • the data provider of m 1 trusts CP B; while the data provider of m 2 trusts CP V. Hence, they encrypt their data with the corresponding Diffie-Hellman key (PK or PK′) .
  • DR j with key pair wants to obtain a data processing result across CPs.
  • DR j is a customer of CP B.
  • the detailed procedure is introduced as follows.
  • DSP selects a random number w and then operates as follows: 1) Encrypt w and -w: [w] PK and [-w] PK ,; and 2) Compute [m 1 +w] PK and [m 2 -w] PK ,; then 3) call PDec1 () to re-encrypt the two data to obtain and
  • CP B Upon receiving CP B first checkes its CID and determines if the requester is allowed to access the data; if positive, CP B calls PDec2 () to obtain the fused raw data m 1 + w and then encrypt it with DRj’s public key Similar to the operations of CP B, CP V also obtains
  • DSP 120 multiplies the two ciphertexts to obtain and then forwards it to DR. Finally DRj can directly get the sum of data (m 1 + m 2 ) by calling Dec () .
  • Multiplication across CPs 130 Different from Multiplication described earlier with reference to a single CP 130, multiple CPs are involved in the computation and leads to a slightly higher computation on the CPs.
  • the data packet sent to CP B is while the data is sent to CP V.
  • the CP Upon receiving the data package, the CP first checks the legality and its access policy, and then calls PDec2 () if it is positive. Concretely, the CP V obtains the value of c 2 *m 2 , encrypts it with PK B and then sends to the CP B. The CP B obtains the two plaintext and multiplies them to get c 1 *c 2 *m 1 *m 2 .
  • the CP B encrypts c 1 *c 2 *m 1 *m 2 with the DR j’s public key and sends it together with to DR j.
  • Comparison across CPs 130 Different from the Comparison over one CP, the initial operation is executed by the CPs 130 rather than the DSP 120.
  • the DSP directly sends the data [m 1 ] PK and [m 2 ] PK , to the CP B and the CP V respectively.
  • the CP V calls PDec1 () to obtain and then sends it to the CP B through a secure way.
  • the CP B first decrypts to obtain and computes as follows:
  • the CP B also encrypts s with the public key of and then sends and to the DSP.
  • FIGURE 5 is a flow graph of a method in accordance with at least some embodiments of the present invention.
  • the phases of the illustrated method may be performed in DSP 120, or in a control device configured to control the functioning thereof, when implanted therein.
  • Phase 510 comprises receiving, from a data provider, a first ciphertext.
  • Phase 520 comprises performing a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier.
  • Phase 530 comprises obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation.
  • phase 540 comprises providing the second ciphertext to a first computation party
  • FIGURE 6 is a flow graph of a method in accordance with at least some embodiments of the present invention.
  • the phases of the illustrated method may be performed in CP 130, or in a control device configured to control the functioning thereof, when implanted therein.
  • Phase 610 comprises determining, based on a message from a data requester, a computation identifier.
  • Phase 620 comprises transmitting a request to a data service provider, the request comprising the computation identifier.
  • Phase 630 comprises receiving, from the data service provider, a first ciphertext.
  • Phase 640 comprises obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation.
  • phase 650 comprises providing the second ciphertext to the data requester as a response to the message.
  • At least some embodiments of the present invention find industrial application in secure data processing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

According to an example aspect of the present invention, there is provided an apparatus comprising at least one processing core, at least one memory including computer program code, the at least one memory and the computer program code being configured to, with the at least one processing core, cause the apparatus at least to receive, from a data provider, a first ciphertext, perform a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier, obtain a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and provide the second ciphertext to a first computation party.

Description

SECURE DATA PROCESSING FIELD
The present invention relates to processing information in encrypted form, for example in a cloud service provision environment.
BACKGROUND
Cloud computing services provide off-site opportunities for individuals and corporations. For example, cloud storage service enables off-site storage of data sets in a flexible manner in a data centre, reducing the need for users of the cloud service to obtain their own storage hardware, for example for archiving purposes.
A further example of a cloud service is a cloud processing service, wherein a user is given access to processor resources at a computer or computing grid. This may be useful, for example where a user needs access to high-capacity computing intermittently, and obtaining actual high-capacity computing hardware would be wasteful as the hardware would mostly be unused, since the need is only intermittent.
Consumers may use cloud services to back up their data, for example during operating system updates of their devices, such as computers, smartphones and laptops. Some smart devices are configured to automatically upload images captured by users to a cloud storage service.
While useful, cloud services present high risk to users. Personal information may accidentally, or purposefully, be stored on a cloud storage service. Such personal information may become vulnerable to theft, unauthorised modification or eavesdropping either during transit to or from the cloud storage service, or while in the cloud storage service. The cloud service provider may be untrusted or only partially trusted. Furthermore, the cloud service may be distributed between several data centres, and customer data may be communicated between such data centres to balance load between the centres. Such communication presents additional risk of eavesdropping.
As it relates to cloud processing services, risks are also present. Where a user seeks to analyse medical patient data, for example, not only the data itself but also its processing is highly confidential by its intrinsic nature. Similar considerations apply to other confidential data that may be processed, such as corporate, personal or military data. For example, analysing stealth-defeating radar may comprise complex processing of plural radar signals and their combinations. Clearly, such signal processing is secret due to its nature.
SUMMARY OF THE INVENTION
The invention is defined by the features of the independent claims. Some specific embodiments are defined in the dependent claims.
According to a first aspect of the present invention, there is provided an apparatus comprising at least one processing core, at least one memory including computer program code, the at least one memory and the computer program code being configured to, with the at least one processing core, cause the apparatus at least to receive, from a data provider, a first ciphertext, perform a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier, obtain a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and provide the second ciphertext to a first computation party.
Various embodiments of the first aspect may comprise at least one feature from the following bulleted list:
· the apparatus is configured to obtain the computation identifier from the first computation party
· the apparatus is further configured to participate in negotiating a shared secret with the first computation party
· the cryptographic re-encryption operation is performed in dependence of the computation identifier
· the second ciphertext is not decryptable solely by a secret key of the first computation party
· the apparatus is further configured to obtain a key pair comprising a public key of the apparatus and a secret key of the apparatus
· the computation identifier identifies at least one of the following processes: addition, subtraction, multiplication, sign acquisition, comparison, equivalence test and variance
· the apparatus is further configured to obtain a third ciphertext from the first ciphertext, to provide the third ciphertext to a second computation party, and to obtain a fourth ciphertext from responses received in the apparatus from the first computation party and the second computation party, and to obtain an encrypted result of a computation process identified by the computation identifier.
According to a second aspect of the present invention, there is provided an apparatus comprising at least one processing core, at least one memory including computer program code, the at least one memory and the computer program code being configured to, with the at least one processing core, cause the apparatus at least to determine, based on a message from a data requester, a computation identifier, transmit a request to a data service provider, the request comprising the computation identifier, receive, from the data service provider, a first ciphertext, obtain a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and provide the second ciphertext to the data requester as a response to the message.
Various embodiments of the second aspect may comprise at least one feature from the following bulleted list:
· the apparatus is further configured to check an access policy before providing the request to the data service provider
· the apparatus is further configured to participate in negotiating a shared secret with the data service provider
· the negotiating comprises a Diffie-Hellman negotiation
· the apparatus is configured to perform the cryptographic re-encryption operation in dependence of the computation identifier
· the computation identifier identifies one of the following computation processes: addition, subtraction, multiplication, sign acquisition, comparison, equivalence test and variance.
According to a third aspect of the present invention, there is provided a method comprising receiving, from a data provider, a first ciphertext, performing a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier, obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and providing the second ciphertext to a first computation party.
Various embodiments of the third aspect may comprise at least one feature corresponding to a feature from the preceding bulleted list laid out in connection with the first aspect.
According to a fourth aspect of the present invention, there is provided a method comprising determining, based on a message from a data requester, a computation identifier, transmitting a request to a data service provider, the request comprising the computation identifier, receiving, from the data service provider, a first ciphertext, obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and providing the second ciphertext to the data requester as a response to the message.
Various embodiments of the fourth aspect may comprise at least one feature corresponding to a feature from the preceding bulleted list laid out in connection with the second aspect.
According to a fifth aspect of the present invention, there is provided a system comprising an apparatus according to the first aspect, an apparatus according to the second aspect, a data requester and a data provider.
According to a sixth aspect of the present invention, there is provided an apparatus comprising means for receiving, from a data provider, a first ciphertext, means for performing a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier,  means for obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and means for providing the second ciphertext to a first computation party.
According to a seventh aspect of the present invention, there is provided an apparatus comprising means for obtaining a key pair comprising a public key of an apparatus and a secret key of the apparatus, means for determining, based on a message from a data requester, a computation identifier, means for transmitting a request to a data service provider, the request comprising the computation identifier and a public key of the data requester, means for receiving, from the data service provider, a first ciphertext, means for obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and means for providing the second ciphertext to the data requester as a response to the message.
According to an eighth aspect of the present invention, there is provided a non-transitory computer readable medium having stored thereon a set of computer readable instructions that, when executed by at least one processor, cause an apparatus to at least receive, from a data provider, a first ciphertext, perform a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier, obtain a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and provide the second ciphertext to a first computation party.
According to a ninth aspect of the present invention, there is provided a non-transitory computer readable medium having stored thereon a set of computer readable instructions that, when executed by at least one processor, cause an apparatus to at least obtain a key pair comprising a public key of an apparatus and a secret key of the apparatus, determine, based on a message from a data requester, a computation identifier, transmit a request to a data service provider, the request comprising the computation identifier and a public key of the data requester, receive, from the data service provider, a first ciphertext, obtain a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and provide the second ciphertext to the data requester as a response to the message.
According to a tenth aspect of the present invention, there is provided a computer program configured to cause a method in accordance with at least one of the third and fourth aspects to be performed.
BRIEF DESCRIPTION OF THE DRAWINGS
FIGURE 1 illustrates an example system in accordance with at least some embodiments of the present invention;
FIGURE 2 illustrates an example system in accordance with at least some embodiments of the present invention.
FIGURE 3 illustrates an example apparatus capable of supporting at least some embodiments of the present invention;
FIGURE 4 illustrates signalling in accordance with at least some embodiments of the present invention;
FIGURE 5 is a flow graph of a method in accordance with at least some embodiments of the present invention, and
FIGURE 6 is a flow graph of a method in accordance with at least some embodiments of the present invention.
EMBODIMENTS
Confidential processing of data in a cloud service may be obtained by dividing processing into parts, the processing being conducted on encrypted data, which is known as ciphertext. A two-level decryption process is used with two service provision entities, a data service provider and a computation party, which co-operate to jointly perform secure processing of data and deliver processed data in encrypted form to a data requesting party. The data requesting party may be a same party as the one that provided  the data, that it, a data provider. At least some embodiments of the invention operate using homomorphic re-encryption.
The data service provider may receive a computation identifier and perform a mathematical manipulation of a first ciphertext, to thereby modify a plaintext underlying the first ciphertext. In other words, the data service provider may perform a computation on plaintext of the first ciphertext, without decrypting the first ciphertext, by mathematically manipulating the first ciphertext. The manipulation, and/or corresponding modification of the plaintext, is identified by the computation identifier. Subsequently, the data service provider may re-encrypt the manipulated first ciphertext to obtain a second ciphertext. The re-encrypting may comprise use of a secret key of the data service provider and a public key of a data requester, for example. The re-encrypting may be performed in dependence of the computation identifier. Re-encrypting may comprise at least partial decryption followed by encryption.
FIGURE 1 illustrates an example system in accordance with at least some embodiments of the present invention. The system comprises data service provider 120, which may comprise a cloud data storage data centre or cloud data centre system, for example. Data service provider 120 may also be a cloud processing service provider. A cloud data centre system may comprise a plurality of data centres, with load balancing arranged in a suitable manner between individual data centres comprised in the plurality. In general, data service provider 120 may be configured to store data and provide some computation services.
The system of FIGURE 1 further comprises at least one computation party 130. Computation party 130 may comprise a processing-enabled computing entity, such as, for example, a data centre, data centre system, server, server farm or indeed an individual networked computer such as a desktop or a laptop. In general, computation party 130 may be configured to provide data computation services and/or data access control for its users. In the model described herein, there may exist several computation parties, CP, 130 that are operated by different entities, such as medical institutions, schools, and/or banks. Different CPs may deal with different kinds of data, for example health-related data, student records and financial information. Hence, a user may freely choose a CP he trusts for service consumption. This may enhance user security.
The system of FIGURE 1 further comprises at least one data provider 110. Data provider 110 may comprise a data owner, such as, for example, a consumer, corporation or government entity, for example. For example, data provider 110 may generate the data. Data may be provided by an X-ray device or body scanner where data provider 110 is a medical entity, such as a clinic or hospital. Data may be generated in an industrial process or a design tool where data provider 110 is a corporate entity, such as a manufacturer or engineering company. Data may be generated in a radar or flight control facility where data provider 110 is a government entity, such as a military or aviation authority. Data provider 110 may be configured to provide data in encrypted form to data service provider 120.
The system of FIGURE 1 further comprises data requester 140. Data requester 140 may comprise an entity authorised by data provider 110 to access, at least partly, data owned and/or generated by data provider 110. Data requester 140 may need the data of data provider 110 in a processed form. Data requester 140 may be the same entity as data provider 110.
Overall, data provider 110, data service provider 120, computation party 130 and data requester 140 may be seen as roles or functions that may be assumed and performed by different kinds of entities. As indicated above, data provider 110 and data requester 140 may be one and the same. On the other hand, data service provider 120 and computation party 130 are not physically the same entity. In detail, data service provider 120 need not be trusted by data provider 110, while computation party 130 may be trusted by data provider 110.
Networked connections interconnect the entities described above to each other. In detail, connection 112 enables data provider 110 to transmit ciphertext to data service provider 120. Connection 142 enables communication between data requester 140 and data service provider 120. Connection 123 enables communication between computation party 130 and data service provider 120. Finally, connection 143 enables communication between data requester 140 and computation party 130. The connections may be wired or, at least partly, wireless, connections, where applicable.
FIGURE 2 illustrates an example system in accordance with at least some embodiments of the present invention. Like numbering denotes like structure as in FIGURE 1. FIGURE 2 corresponds to the case, where data requester 140 is the same entity  as data provider 110. For example, this is the case where a data owner requests a cloud data processing result of his own data.
In the systems illustrated in FIGURE 1 and FIGURE 2, all entities are assumed to be curious but honest. That is, they are curious about others’ data but act honestly by following the design of system protocols. In addition, the DSP 120 and the CPs 130 would be unlikely to collude with each other due to interest conflicts. Moreover, any collusion would decrease user trust in the CP 130, which leads to the loss of its users.
Three challenges are addressed by various embodiments of the present invention.
Firstly, existing ciphertext processing schemes cannot flexibly support multiparty access. Many schemes are designed based on a specified aggregator, wherein only this aggregator can access the aggregated result. Such schemes cannot support genuine multiparty access. The data provided by users cannot be used for data analysis by other authorized requesters. In some situations, data should be observed and collected all the time for potential use without knowing a concrete data access requester. For example, medical and clinical research can benefit greatly from statistics of patients. More than one party could be interested in requesting encrypted processing results after data collection and process. Hence, such an application scenario calls for a privacy-preserving data processing scheme for multiple unspecified requesters. However, existing work cannot support this demand in a flexibly and efficient way.
Secondly, it is desired that ciphertext processing results should be only accessed by authorized requesters. A data processing party, such as a cloud service provider, should not be able to access the results if it cannot be fully trusted by the data owner. The problem of privacy-preserving data aggregation with a distrusted aggregator has been studied, but such studies only describe systems that allow the aggregator to access the final aggregated results. Such schemes cannot satisfy the practical security requirement.
Thirdly, most existing research focuses on encrypted data aggregation and multiplication, which cannot support various computation operations over the same encrypted outsourced data. Aggregation and multiplication of encrypted data are not sufficient to satisfy emerging demands on data analytics in our daily life. Fully homomorphic encryption could support various computations of encrypted data, but it  cannot flexibly control multiparty access on the processed data in an encrypted form because the finally processed data can only be decrypted with a corresponding secret key.
To solve the above-described three problems, a re-encryption scheme is proposed, which can flexibly support access control on encrypted-data computation results with two-level decryption. Furthermore, the proposed re-encryption scheme is applied to realize a number of operations over ciphertexts including addition, subtraction, multiplication, sign acquisition, comparison, equivalent test, and variance, which may support various applications that request processing of encrypted data and/or analytics thereof.
We consider a scenario with two types of independent service providers that do not collude with each other. One is data service provider, DSP, 120 that is responsible for data storage and partial computations. The other is computation party, CP, 130 that is in charge of data access control and additional computations. DSP 120 collects and stores the data in an encrypted form from a number of data providers, DP, 110. When a data requester, DR, 140, requires a data processing result, CP 130 may first check an access right of DR 140. If DR 140 is eligible to access the data, CP 130 contacts DSP 120 to further process the ciphertext with a re-encryption process for the DR 140, and then CP 130 may provide the re-encryption result to the authorized DR 140 for decryption. In addition, the described scheme supports multiple CPs 130 served by different companies for distributed data processing and access control. In general, DSP 120 and CP 130 together produce the ciphertext, with contents of the ciphertext processed as requested by DR 140, such that DSP 120 does not obtain access to the contents of the ciphertext despite DSP 120 participating in performing the requested processing.
Specifically, the contributions of this invention can be summarized as the following three elements:
Firstly, a new cryptographic primitive is described, which uses two service providers, DSP 120 and CP 130, to manage encrypted data and realizes re-encryption over homomorphic encryption. The primitive enables processing and analysis of ciphertext. Only authorized users can access the encrypted data processing result in a secure way.
Secondly, seven basic operations on encrypted data based on the primitive are described: addition, subtraction, multiplication, sign acquisition, comparison, equivalent test, and variance, which can satisfy many data processing demands.
Thirdly, to enhance the flexibility and security of the proposed schemes, we apply multiple CPs to take in charge of the data from their own customers and design computing operations over ciphertexts belonging to multiple CPs.
Paillier’s cryptosystem, as described in Paillier: “Public key cryptosystems based on composite degree residuosity classes” (Advances in cryptology, EUROCRYPT 1999, pp. 223-238) is one of the most important additive homomorphic encryption systems. Suppose we have N encrypted data under same key pk, which can be presented as [mipk (i = 1, 2,...,N) . The additive homomorphic encryption satisfies the following equation:
Figure PCTCN2016087876-appb-000001
where Dsk () is the corresponding homomorphic decryption algorithm with secret key sk. Reference is made to Paillier (see above) , ElGamal “A public key cryptosystem and a signature scheme based on discrete algorithms” (Advances in cryptology, Springer, 1985, pp 10-18. ) and Bresson et al. “A simple public-key cryptosystem with a double trapdoor decryption mechanism and its applications” , (Advances in cryptology, ASIACRYPT 2003, Springer, pp. 37-54) .
For easy presentation, we use the acronym EDD to present the mechanism proposed by E. Bresson, D. Catalano and D. Pointcheval: “A simple public-key cryptosystem with a double trapdoor decryption mechanism and its applications” (Advances in Cryptology, ASIACRYPT, 2003, pp. 37 -54, Springer, 2003) , which is a variant of Cramper-Shoup “Universal hash proofs and a paradigm for adaptive chosen ciphertext secure public-key encryption” (Advances in cryptology, EUROCRYPT 2002, pp. 45-64) .
Let g and h be two elements of maximal order in
Figure PCTCN2016087876-appb-000002
Note that, if h is computed as gx, where x ∈R [1, λ (n2) ] , then x is coprime with ord
Figure PCTCN2016087876-appb-000003
with high probability, and thus h is of maximal order.
Key Generation: The public parameters are n, g and h = gx by randomly choosing a value
Figure PCTCN2016087876-appb-000004
 (where g is generated by first choosing a random element
Figure PCTCN2016087876-appb-000005
and then setting g= α2mod n2) .
Encrypt: Given a message
Figure PCTCN2016087876-appb-000006
random number r is chosen uniformly in 
Figure PCTCN2016087876-appb-000007
The ciphertext is computed as (T, T′) = {hr (1 + m *n) (mod n2) , gr (mod n2) } .
Decryption: Knowing x, one can obtain m as follows:
m = L (T/ (T′) x mod n2) , where L (u) = (u -1) /n.
Note: if the factorization of n = p *q (λ (n) = (p -1) (q -1) /2) is given, one can directly decrypt the ciphertext by computing m= L ( (T) λ (n) ) [λ (n) ] -1mod n.
In this section, we briefly introduce the original attempt of proxy re-encryption, PRE, in Ateniese et al. “Improved proxy re-encryption schemes with applications to secure distributed storage” (ACM Transactions on Information and System Security (TISSEC) , vol. 9, no. 1, pp. 1-30, 2006) , which lays the foundation of our proposed schemes. Generally, the ciphertext that can be only decrypted by Entity A can be converted into the one that can be decrypted by Entity B through the re-encryption of a proxy.
The PRE is based on Cramper-Shoup and EDD. It has the same operation of key generation as EDD. Thus, we skip it and focus on re-encryption operation.
Data Encryption: to encrypt a message
Figure PCTCN2016087876-appb-000008
select a random r ∈ [1, n/4] and compute: (T, T′) = {hr (1 + m *n) (mod n2) , gr } .
Decryption with x: m = L (T/ (T′) xmod n2) , where L (u) = (u -1) /n, for all u ∈ {u < n2|u = 1 mod n} .
Proxy Re-encryption: the secret key x is divided into two shares x1 and x2, such that x = x1 + x2. The share x1 is given to the proxy, while x2 is kept by Entity B.
Re-encryption (done by the proxy) : 
Figure PCTCN2016087876-appb-000009
Figure PCTCN2016087876-appb-000010
Decryption (done by Entity B) : 
Figure PCTCN2016087876-appb-000011
This is a proxy-invisible scheme, which means that it is unable to distinguish the original ciphertext from the re-encrypted ciphertext. In our proposed scheme, two servers play as an invisible proxy to transfer the encrypted data to the ciphertext under the key of an authorized requester. Moreover, the non-colluding servers help ensure the correct transformation of ciphertext.
The following table summarizes notation used herein:
Figure PCTCN2016087876-appb-000012
Figure PCTCN2016087876-appb-000013
In order to support privacy-preserving data processing, we adapt the EDD to encrypt personal data with the Diffie-Hellman key of two servers, i.e., 
Figure PCTCN2016087876-appb-000014
Figure PCTCN2016087876-appb-000015
We design the primitive, HRES, which can realize proxy-invisible re-encryption and secure data processing. The HRES consists of the following algorithms:
KeyGen: Let k be a security parameter and p, q be two large primes, where 
Figure PCTCN2016087876-appb-000016
returns the bit length of input data) . Due to the property of safe primes, there exist two primes p′and q′which satisfy that p = 2p′+ 1, q = 2q′+ 1. We compute n = p*q and choose a generator g with order λ = 2p′q′, which can be chosen by selecting a random number
Figure PCTCN2016087876-appb-000017
and computing g = -z2n. The value λ can be used to decrypt the encrypted data, but we choose to conceal it and protect it from all involved parties. In the HRES, we only use key pair (sk, gsk) for data encryption and decryption. The DSP 120 and the CP 130 generate their key pairs: (SKDSP = a, PKDSP = ga) and (SKCP = b, PKCP =gb) , and then negotiate their Diffie-Hellman key
Figure PCTCN2016087876-appb-000018
Figure PCTCN2016087876-appb-000019
To support encrypted data processing, PK is public to all involved parties. Cloud user i generates its key pair
Figure PCTCN2016087876-appb-000020
The public system parameters include {g, n, PK} .
First, the Original Encryption scheme is directly obtained from EDD.
Encryption (Enc) : For a personal purpose, a user can outsource private data with its own key pair, which can ensure the unavailability of data to other entities. It can also be used to send data to a specified target. User encrypts their data with the public key of user i and a random r ∈ [1, n/4] as follows:
Figure PCTCN2016087876-appb-000021
Decryption (Dec) : Upon receiving the encrypted data under its own public key, user i can directly decrypt it to obtain the original data:
Figure PCTCN2016087876-appb-000022
Second, the following encryption is a Two-Level Decryption scheme that can support outsourced data processing flexibly.
Encryption with Two Keys (EncTK) : To support ciphertext process flexibly, we propose to encrypt original data under the keys of two servers. Given a message
Figure PCTCN2016087876-appb-000023
provided by user i, we first select a random number r ∈ [1, n/4] and then encrypt it with PK. The ciphertext is generated as [mi] = {Ti, Ti′} , where Ti′=grmod n2, Ti = (1 + mi *n) *PKrmod n2.
Note: [mi] denotes the ciphertext of mi encrypted with PK, which can only be decrypted under the cooperation of the DSP and the CP. 
Figure PCTCN2016087876-appb-000024
denotes the data that is encrypted with pki, which can be decrypted by user i.
Partial Decryption with SKDSP (PDecl) : Once [mi] is received by the DSP, algorithm PDecl () will be run to transfer it into another ciphertext which can be decrypted by the CP as follows:
Figure PCTCN2016087876-appb-000025
Partial Decryption with SKCP (PDec2) : Once the message
Figure PCTCN2016087876-appb-000026
is received, the CP can directly decrypt it with its own secret key as follows:
1) Select the public computation identifier CID, which specifies the operation type.
2) 
Figure PCTCN2016087876-appb-000027
3) 
Figure PCTCN2016087876-appb-000028
To achieve the proxy-invisible re-encryption, we further propose a Somewhat Re-Encryption scheme, wherein differently from the scheme described above, it aims to transfer the encrypted data to the ciphertext under the public key of an authorized  requester. Here, we assume DR j with key pair (skj, pkj) = (t, gt) requires to obtain mi through outsourced data [mi] . In our scheme, the transformation needs the cooperation and recognition of both the DSP and the CP. They together play the role of a proxy.
First Phase of Re-Encryption (FPRE) : In order to prevent the decryption PDec2 () by the CP, the DSP initiates algorithm FPRE () as follows:
1) Select the public computation identifier CID, which specifies the operation type.
2) 
Figure PCTCN2016087876-appb-000029
3) 
Figure PCTCN2016087876-appb-000030
Notes: [mi+ denotes the encrypted data that can only be decrypted by an authorized data requester with the support of the CP 130.
Second Phase of Re-Encryption (SPRE) : Upon receiving the data packet [mi+, the CP launches re-encryption algorithm SPRE () as below:
1) 
Figure PCTCN2016087876-appb-000031
2) 
Figure PCTCN2016087876-appb-000032
Note: If data outsourced by a user are extremely private and not allowed to be processed or analyzed, the cloud user can choose to use Enc () to encrypt its personal data with its own public key and then store them at the DSP. If the data can be analyzed in a privacy-preserving way by authorized parties, the user need to store encrypted data by calling the encryption algorithm EncTK () .
FIGURE 3 illustrates an example apparatus capable of supporting at least some embodiments of the present invention. Illustrated is device 300, which may comprise, for example, a DP 110, DSP 120, CP 130 or DR 140 of FIGURE 1 or FIGURE 2. Comprised in device 300 is processor 310, which may comprise, for example, a single-or multi-core processor wherein a single-core processor comprises one processing core and a multi-core processor comprises more than one processing core. Processor 310 may comprise more than one processor. A processing core may comprise, for example, a Cortex-A8 processing core manufactured by ARM Holdings or a Steamroller processing core produced by Advanced Micro Devices Corporation. Processor 310 may comprise at  least one Qualcomm Snapdragon and/or Intel Atom processor. Processor 310 may comprise at least one application-specific integrated circuit, ASIC. Processor 310 may comprise at least one field-programmable gate array, FPGA. Processor 310 may be means for performing method steps in device 300. Processor 310 may be configured, at least in part by computer instructions, to perform actions.
Device 300 may comprise memory 320. Memory 320 may comprise random-access memory and/or permanent memory. Memory 320 may comprise at least one RAM chip. Memory 320 may comprise solid-state, magnetic, optical and/or holographic memory, for example. Memory 320 may be at least in part accessible to processor 310. Memory 320 may be at least in part comprised in processor 310. Memory 320 may be means for storing information. Memory 320 may comprise computer instructions that processor 310 is configured to execute. When computer instructions configured to cause processor 310 to perform certain actions are stored in memory 320, and device 300 overall is configured to run under the direction of processor 310 using computer instructions from memory 320, processor 310 and/or its at least one processing core may be considered to be configured to perform said certain actions. Memory 320 may be at least in part comprised in processor 310. Memory 320 may be at least in part external to device 300 but accessible to device 300.
Device 300 may comprise a transmitter 330. Device 300 may comprise a receiver 340. Transmitter 330 and receiver 340 may be configured to transmit and receive, respectively, information in accordance with at least one cellular or non-cellular standard. Transmitter 330 may comprise more than one transmitter. Receiver 340 may comprise more than one receiver. Transmitter 330 and/or receiver 340 may be configured to operate in accordance with global system for mobile communication, GSM, wideband code division multiple access, WCDMA, long term evolution, LTE, IS-95, wireless local area network, WLAN, Ethernet and/or worldwide interoperability for microwave access, WiMAX, standards, for example.
Device 300 may comprise a near-field communication, NFC, transceiver 350. NFC transceiver 350 may support at least one NFC technology, such as NFC, Bluetooth, Wibree or similar technologies.
Device 300 may comprise user interface, UI, 360. UI 360 may comprise at least one of a display, a keyboard, a touchscreen, a vibrator arranged to signal to a user by  causing device 300 to vibrate, a speaker and a microphone. A user may be able to operate device 300 via UI 360, for example to manage ciphertext-form data.
Device 300 may comprise or be arranged to accept a user identity module 370. User identity module 370 may comprise, for example, a subscriber identity module, SIM, card installable in device 300. A user identity module 370 may comprise information identifying a subscription of a user of device 300. A user identity module 370 may comprise cryptographic information usable to verify the identity of a user of device 300 and/or to facilitate encryption of communicated information and billing of the user of device 300 for communication effected via device 300.
Processor 310 may be furnished with a transmitter arranged to output information from processor 310, via electrical leads internal to device 300, to other devices comprised in device 300. Such a transmitter may comprise a serial bus transmitter arranged to, for example, output information via at least one electrical lead to memory 320 for storage therein. Alternatively to a serial bus, the transmitter may comprise a parallel bus transmitter. Likewise processor 310 may comprise a receiver arranged to receive information in processor 310, via electrical leads internal to device 300, from other devices comprised in device 300. Such a receiver may comprise a serial bus receiver arranged to, for example, receive information via at least one electrical lead from receiver 340 for processing in processor 310. Alternatively to a serial bus, the receiver may comprise a parallel bus receiver.
Device 300 may comprise further devices not illustrated in FIGURE 3. For example, where device 300 comprises a smartphone, it may comprise at least one digital camera. Some devices 300 may comprise a back-facing camera and a front-facing camera, wherein the back-facing camera may be intended for digital photography and the front-facing camera for video telephony. Device 300 may comprise a fingerprint sensor arranged to authenticate, at least in part, a user of device 300. In some embodiments, device 300 lacks at least one device described above. For example, some devices 300 may lack a NFC transceiver 350 and/or user identity module 370.
Processor 310, memory 320, transmitter 330, receiver 340, NFC transceiver 350, UI 360 and/or user identity module 370 may be interconnected by electrical leads internal to device 300 in a multitude of different ways. For example, each of the aforementioned devices may be separately connected to a master bus internal to device 300,  to allow for the devices to exchange information. However, as the skilled person will appreciate, this is only one example and depending on the embodiment various ways of interconnecting at least two of the aforementioned devices may be selected without departing from the scope of the present invention.
FIGURE 4 illustrates signalling in accordance with at least some embodiments of the present invention. On the vertical axes are disposed, from the left to the right, DP 110, DSP 120, CP 130 and DR 140. Time advances from the top toward the bottom.
Phase 410, which takes place in all the four entities, comprises a system setup phase. DSP 120 and CP 130 get their own key pairs respectively (SKDSP, PKDSP) = (a,ga) and (SKCP, PKCP) = (b, gb) , and then negotiate
Figure PCTCN2016087876-appb-000033
Figure PCTCN2016087876-appb-000034
The corresponding secret key of PK is a *b. DP 110, that is, user i, generates its own key pair
Figure PCTCN2016087876-appb-000035
by randomly choosing ki ∈ [1, n/4] , and then registers at the CP. The public parameters are
Figure PCTCN2016087876-appb-000036
and the public keys of all involved entities. DR 140 j performs similarly to generate its key pair
Figure PCTCN2016087876-appb-000037
Figure PCTCN2016087876-appb-000038
If multiple CPs 130 are employed in the system, each CP 130 may negotiate a Diffie-Hellman key with the DSP 120 and publish this key to its customers. For simplifying presentation, we only present the detailed operations in the case that there is only one CP 130 interacting with the DSP 120 as below.
Phase 420 comprises a data upload from DP 110 to DSP 120. DPs 110 encrypt their data before uploading it to the DSP 120. DP i 110 calls EncTK () to encrypt data mi
Figure PCTCN2016087876-appb-000039
For correctly supporting various computations, the length of the data may be restricted
Figure PCTCN2016087876-appb-000040
Then DP i 110 uploads and stores [mi] at the DSP 120.
Phase 430 comprises DR 140 requesting the data uploaded in phase 420, by signalling to CP 130. The request of phase 430 may comprise a computation identifier, CID. The request may comprise a request to obtain the data in processed and encrypted form. The request may comprise a public key of DR 140.
Phase 440 may comprise CP 130 assessing, whether DR 140 is authorized to access the data. In case no, processing may stop here. In case DR 140 is authorized, CP 130 may forward the request to DSP 120, the forwarding being illustrated in FIGURE 4 as phase 450. The forwarded request may likewise comprise the CID, and/or a public key of DR 140.
Phase 460 comprises DSP 120 pre-processing the requested data, upon receiving the request from DR 140 authorized by CP 130, according to the computation identifier CID by calling the algorithm FPRE(), which is described above, to prepare data packet DPacket for CP 130. Phase 470 comprises DSP 120 providing the processed data, DPacket, to CP 130. Phase 460 may further comprise DSP 120 performing a mathematical manipulation of the data in encrypted form, in dependence of the CID.
Phase 480 comprises CP 130 further processing DPacket, received from DSP 120, by calling the algorithm SPRE() to obtain DPacket′. Algorithm SPRE() is described above. Alternatively, phase 480 may comprise CP 130 transferring DPacket under DR 140’s public key using a different method, such as by first using PDec2() and then Enc(). These algorithms are described above. Finally, in phase 490, DPacket’ is provided to DR 140 as a response to the request of phase 430. Once DR 140 has DPacket’ , it may decrypt it, for example by calling algorithm DPRE() to obtain the data. DPRE() is described above.
In the following, processing of encrypted data will be described with respect to the computations listed above, namely The HRES primitive may support seven basic operations, indicated by different CID: 1) addition; 2) subtraction; 3) multiplication; 4) sign acquisition; 5) comparison; 6) equivalent Test; and 7) variance.
System setup and data collection have no difference from that in FIGURE 4. Hence, we ignore the process of data upload and mainly focus on  phases  460, 480 and 490 in the following presentation. DP i 110 offers personal data as [mi] and DR j 140 holds the key pair
Figure PCTCN2016087876-appb-000041
Addition: this scheme aims to obtain the sum of all raw data
Figure PCTCN2016087876-appb-000042
where
Figure PCTCN2016087876-appb-000043
represents the set of data providers related to CID in the request.
Phase 460 (Data Preparation at DSP) : Due to the additive homomorphism, the DSP can directly multiply encrypted data one by one as following:
Figure PCTCN2016087876-appb-000044
To transfer it into the ciphertext under DR j’s public key, the DSP further calls the algorithm FPRE () to process the data with its own secret key and DR j’s public key pkj
Figure PCTCN2016087876-appb-000045
The DSP finally prepares a data packet ( [m] +, CID) and sends it to the CP.
Phase 480 (Data Process at CP) : The CP calls the second re-encryption algorithm SPRE () to finally transfer the encrypted data to the ciphertext under DR j’s public key:
Figure PCTCN2016087876-appb-000046
Then the CP sends (
Figure PCTCN2016087876-appb-000047
CID) to the DR.
Phase 490 (Data Access at DR) : The DR can obtain the aggregated result by calling the algorithm DPRE () :
Figure PCTCN2016087876-appb-000048
Subtraction: this function aims to obtain the subtraction of some data (for example, m = m1-m2) with encrypted data [m1] and [m2] . The HRES has an additional property as follows:
Figure PCTCN2016087876-appb-000049
Phase 460 (Data Preparation at DSP) : The DSP first computes [-m2] = [m2n-1, and then multiplies it with [m1] to obtain [m] = [m1-m2] .
Then the subsequent process is the same as that in Addition. For length and simplicity reasons, we skip its details.
Multiplication: This function aims to obtain the product of all raw data 
Figure PCTCN2016087876-appb-000050
For ease of presentation, we describe the details with two pieces of data ( [m1] , [m2] ) . The DR wants to get the multiplication result m = m1*m2.
Note that the available number of the data in multiplication influences the length of raw data. If we need to get the product of f pieces of data, it must be guaranteed that the length of each raw data
Figure PCTCN2016087876-appb-000051
Phase 460 (Data Preparation at DSP) : First, the DSP chooses two random numbers c1, c2 (the number of random numbers is equal to that of provided data) and sets another one c3 = (c1*c2-1 mod n.
To conceal each raw data from the CP, the DSP does one exponentiation and one decryption with its own secret key by calling PDec1 () . Then the DSP encrypts c3 with Enc () using the public key pkj of the requesting DR:
Figure PCTCN2016087876-appb-000052
Figure PCTCN2016087876-appb-000053
Figure PCTCN2016087876-appb-000054
Figure PCTCN2016087876-appb-000055
Figure PCTCN2016087876-appb-000056
The data packet sent to the CP 130 is
Figure PCTCN2016087876-appb-000057
Phase 480 (Data Process at CP) : Upon receiving the data packet from the CSP, the CP uses the algorithm PDec2 () to decrypt the data:
c1*m1 = T1 (1) / (T1′ (1) ) b
c2*m2 = T2 (1) / (T2′ (1) ) b.
It further multiplies the two values and then calls Enc () to encrypt it as 
Figure PCTCN2016087876-appb-000058
Finally, the CP 130 forwards (T, T′) and
Figure PCTCN2016087876-appb-000059
to the DR 140.
Phase 490 (Data Access at DR) : the DR 140 can obtain the product by calling Dec () to decrypt the two ciphertexts with its secret key:
Figure PCTCN2016087876-appb-000060
Sign Acquisition: 
Figure PCTCN2016087876-appb-000061
we assume that BIG is the largest raw data of m. Then the raw data is in the scope [-BIG, BIG] . DR j wants to know the sign of raw data m1 from [m1] .
Phase 460 (Data Preparation at DSP) : The DSP chooses a random number c1 where
Figure PCTCN2016087876-appb-000062
It first computes
Figure PCTCN2016087876-appb-000063
Then it flips a coin s. If s = 0; it computes as follows: 
Figure PCTCN2016087876-appb-000064
Figure PCTCN2016087876-appb-000065
Otherwise, it calls PDec1 () and computes: 
Figure PCTCN2016087876-appb-000066
The DSP also encrypts s with pkj through Enc () : 
Figure PCTCN2016087876-appb-000067
Figure PCTCN2016087876-appb-000068
The data packet sent to the CP is
Figure PCTCN2016087876-appb-000069
Phase 480 (Data Process at CP) : Upon receiving the data packet from the DSP 120, the CP 130 decrypts (T1 (1) ) , T1′ (1) ) with PDec2 () to obtain raw data m′= (-1) s+1*c1* (2*m1 + 1) mod n2. The CP compares
Figure PCTCN2016087876-appb-000070
with
Figure PCTCN2016087876-appb-000071
If
Figure PCTCN2016087876-appb-000072
Figure PCTCN2016087876-appb-000073
it calls Enc () to encrypt u = 1 with pkj; otherwise, it encrypts u = 0 with pkj
Figure PCTCN2016087876-appb-000074
It further multiplies the two ciphertexts.
Figure PCTCN2016087876-appb-000075
Finally, the CP forwards (T, T′) to DR j.
Phase 490 (Data Access at DR) : DR j can call Dec () to obtain the final result: 
Figure PCTCN2016087876-appb-000076
Then DR j needs to check it and determine the sign of raw data: if u + s = 1, the original data is negative (i.e., m1 < 0) ; otherwise, it is positive or zero (i.e., m1 ≥ 0) . Note: if (s = 1, u = 0) or (u = 1, s = 0) , m1 < 0; if (s = 1, u = 1) or (u = 0, s = 0) , m1 ≥ 0.
Comparison: Similar to the schemes above, DR j wants to compare the raw data (m1, m2) based on their encrypted data. For ease of presentation, m1-m2 is denoted as m1-2.
Figure PCTCN2016087876-appb-000077
Figure PCTCN2016087876-appb-000078
Phase 460 (Data Preparation at DSP) : DSP first computes to get the subtraction of encrypted data:
(T, T′) = {T1* (T2n-1, T1′* (T2′) n-1} = [ (m1-m2) ] .
The following steps are the same to that in Sign Acquisition, which is skipped for the reason of length limitation. Through the cooperation of the DSP 120 and the CP 130, the DR 140 finally gets the sign of m1-2 = m1-m2. In the end, the DR can obtain the comparison result. If m1-2 ≥ 0, m1 ≥ m2; otherwise, m1 < m2.
Equivalent test: If DR j 140 wants to know if m1 is equal to m2 with encrypted data ( [m1] , [m2] ) . The DSP 120 and the CP 130 directly interact with each other in two parallel computations of Comparison.
They compare m1 and m2 in two forms: 1) m1-2 = m1-m2; 2) m2-1 = m2-m1. Through the operations in Comparison, DSP can get two computation results 
Figure PCTCN2016087876-appb-000079
and
Figure PCTCN2016087876-appb-000080
respectively.
To conceal the comparing result of m1 and m2, 
Figure PCTCN2016087876-appb-000081
and
Figure PCTCN2016087876-appb-000082
Figure PCTCN2016087876-appb-000083
are sent to the DR in a random order. If both testing result are “≥” , we can know m1 = m2.
Variance: In some scenarios, DR j 140 may want to get the variance of some data according to provided encrypted data. In this presentation, we set N be the number of provided data and
Figure PCTCN2016087876-appb-000084
Variance function can be presented as
Figure PCTCN2016087876-appb-000085
Figure PCTCN2016087876-appb-000086
where
Figure PCTCN2016087876-appb-000087
is the average of mi (i = 1, ..., N) . For ease of presentation, we assume there are three pieces of encrypted data (i.e., N = 3) : [m1] , [m2] and [m3] .
Phase 460 (Data Preparation at DSP) : First, the DSP 120 obtains
Figure PCTCN2016087876-appb-000088
Figure PCTCN2016087876-appb-000089
through following steps:
[m] = (T, T′) = [m1] * [m2] * [m3] ,
[-m] = (Tn-1, (T′) n-1) ;
[N*mi] = [miN for i = 1, 2, 3;
[N*mi-m] = [miN* [-m] for i = 1, 2, 3;
Then the DSP 120 partially decrypts the data with its secret key by calling PDec1 () to obtain: 
Figure PCTCN2016087876-appb-000090
for i = 1, 2, 3. The DSP 120 chooses three random numbers c1, c2, c3, and computes to obtain:
Figure PCTCN2016087876-appb-000091
Then the DSP 120 send the three ciphertexts to the CP 130. In addition, DSP 120 needs to store c1 2, c2 2, c3 2.
Phase 480 (Data Process at CP) : Upon receiving the data from the DSP, the CP directly decrypts to obtain raw data and then processes the data for DR j as follows:
Decrypt to obtain: Ci = ci (N *mi -m) for i = 1, 2, 3;
Encrypt processed data with the public key pkj of DR j 140:
Figure PCTCN2016087876-appb-000092
for i = 1, 2, 3. Then CP 130 sends them back to DSP 120. Additional Operation at DSP: The DSP first computes the reverse of c1 2, c2 2, c3 2 respectively: c′i = (ci 2-1mod n2 for i = 1, 2, 3. Then DSP 120 can prepare the final result for DR j:
Figure PCTCN2016087876-appb-000093
Finally, 
Figure PCTCN2016087876-appb-000094
can be sent to DR j.
Phase 490 (Data Access at DR) : DR j can obtain M′by calling Dec () and then get the variance:
M′= (N*m1-m) 2+ (N*m2-m) 2+ (N*m1-m) 2
M = M′/N3.
In the following, processing involving multiple CPs 130 will be described. Due to length limitations, we will only present such basic operations as addition, subtraction, multiplication, and comparison across the CPs 130 in this section. We set an example of two encrypted data belonging to two CPs: CP B and CP V. Besides the settings above, we further set the key pair of B and V as (SKb, PKb) = (b, gbmod n2) and (SKv, PKv) = (v, hv) . Hence, we have PK = PKb a = PKa b and PK′= PKv a = PKa v. Two messages are encrypted as:
Figure PCTCN2016087876-appb-000095
Figure PCTCN2016087876-appb-000096
That is to say, the data provider of m1 trusts CP B; while the data provider of m2 trusts CP V. Hence, they encrypt their data with the corresponding Diffie-Hellman key (PK or PK′) .
DR j with key pair
Figure PCTCN2016087876-appb-000097
wants to obtain a data processing result across CPs. We assume DR j is a customer of CP B. The detailed procedure is introduced as follows.
Addition across CPs 130: This computation wants to obtain the sum of data over two servers.
Data Preparation at DSP: DSP selects a random number w and then operates as follows: 1) Encrypt w and -w: [w] PK and [-w] PK,; and 2) Compute [m1 +w] PK and [m2 -w] PK,; then 3) call PDec1 () to re-encrypt the two data to obtain
Figure PCTCN2016087876-appb-000098
Figure PCTCN2016087876-appb-000099
and
Figure PCTCN2016087876-appb-000100
Data Process at CPs: Upon receiving
Figure PCTCN2016087876-appb-000101
CP B first checkes its CID and determines if the requester is allowed to access the data; if positive, CP B calls PDec2 () to obtain the fused raw data m1 + w and then encrypt it with DRj’s public key 
Figure PCTCN2016087876-appb-000102
Similar to the operations of CP B, CP V also obtains
Figure PCTCN2016087876-appb-000103
Additional Operation at DSP: DSP 120 multiplies the two ciphertexts to obtain
Figure PCTCN2016087876-appb-000104
and then forwards it to DR. Finally DRj can directly get the sum of data (m1 + m2) by calling Dec () .
Subtraction across CPs 130: the operation is similar to addition, but it needs to do one more operation to obtain the negative of subtractor by doing exponentiation with the power of (n -1) .
Multiplication across CPs 130: Different from Multiplication described earlier with reference to a single CP 130, multiple CPs are involved in the computation and leads to a slightly higher computation on the CPs.
Data Preparation at DSP: The DSP selects two random numbers (c1, c2) to conceal the raw data, and set c3 = (c2 *c2-1 mod n. Then the DSP does the same operations about Multiplication as those described above and obtains:
Figure PCTCN2016087876-appb-000105
Figure PCTCN2016087876-appb-000106
Figure PCTCN2016087876-appb-000107
Figure PCTCN2016087876-appb-000108
The data packet sent to CP B is
Figure PCTCN2016087876-appb-000109
while the data 
Figure PCTCN2016087876-appb-000110
is sent to CP V.
Data Process at CPs: Upon receiving the data package, the CP first checks the legality and its access policy, and then calls PDec2 () if it is positive. Concretely, the CP V obtains the value of c2 *m2, encrypts it with PKB and then sends
Figure PCTCN2016087876-appb-000111
to the CP B. The CP B obtains the two plaintext and multiplies them to get c1*c2*m1*m2.
Finally, the CP B encrypts c1*c2*m1*m2 with the DR j’s public key and sends it together with
Figure PCTCN2016087876-appb-000112
to DR j.
Data Access at DR: Upon obtaining the data form the CP B, the DR can directly calls Dec () to get the data of c1*c2*m1*m2 and c3. Finally, it can get:
m = m1*m2 = c1*c2*m1*m2*c3 mod n.
Comparison across CPs 130: Different from the Comparison over one CP, the initial operation is executed by the CPs 130 rather than the DSP 120.
First, the DSP directly sends the data [m1PK and [m2PK, to the CP B and the CP V respectively.
Data Preparation at CPs: The CP V calls PDec1 () to obtain
Figure PCTCN2016087876-appb-000113
and then sends it to the CP B through a secure way. The CP B first decrypts to obtain
Figure PCTCN2016087876-appb-000114
and computes as follows:
Figure PCTCN2016087876-appb-000115
Figure PCTCN2016087876-appb-000116
Then it flips a coin s. If s = 0; it computes as follows:
Figure PCTCN2016087876-appb-000117
Otherwise, it computes
Figure PCTCN2016087876-appb-000118
The CP B also encrypts s with the public key of
Figure PCTCN2016087876-appb-000119
and then sends
Figure PCTCN2016087876-appb-000120
and
Figure PCTCN2016087876-appb-000121
to the DSP.
Data Process at DSP: The DSP decrypts
Figure PCTCN2016087876-appb-000122
to obtain raw data m′= (-1) s+1 *c1 * [2 * (m1 -m2) + 1] mod n2. The DSP compares its length with 
Figure PCTCN2016087876-appb-000123
If
Figure PCTCN2016087876-appb-000124
it encrypts u = 1 with pkj; otherwise, it encrypts u = 0 with pkj
Figure PCTCN2016087876-appb-000125
It further multiplies the two ciphertexts.
Figure PCTCN2016087876-appb-000126
Data Access at DR: DR j can call Dec () to obtain the final result: 
Figure PCTCN2016087876-appb-000127
Figure PCTCN2016087876-appb-000128
Then DR j determines the sign of m1-2. If u + s = 1, the original data is negative (i.e., m1 < m2) ; otherwise, it is positive or zero (i.e., m1 ≥ m2) . Comparing with the schemes described herein above, we can observe that the cross-CP computation does not introduce too much overhead. For example, in Addition, the DSP needs to do some encryptions on random numbers, but it calls PDec1 () rather than SPRE (), which is more efficient. The CP also only needs to do one more PDec2 () and one more Enc (). The computation cost of DR is low due to the high efficiency of Dec () .
FIGURE 5 is a flow graph of a method in accordance with at least some embodiments of the present invention. The phases of the illustrated method may be performed in DSP 120, or in a control device configured to control the functioning thereof, when implanted therein.
Phase 510 comprises receiving, from a data provider, a first ciphertext. Phase 520 comprises performing a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier. Phase 530 comprises obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation. Finally, phase 540 comprises providing the second ciphertext to a first computation party
FIGURE 6 is a flow graph of a method in accordance with at least some embodiments of the present invention. The phases of the illustrated method may be performed in CP 130, or in a control device configured to control the functioning thereof, when implanted therein.
Phase 610 comprises determining, based on a message from a data requester, a computation identifier. Phase 620 comprises transmitting a request to a data service provider, the request comprising the computation identifier. Phase 630 comprises receiving, from the data service provider, a first ciphertext. Phase 640 comprises obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation. Finally, phase 650 comprises providing the second ciphertext to the data requester as a response to the message.
It is to be understood that the embodiments of the invention disclosed are not limited to the particular structures, process steps, or materials disclosed herein, but are extended to equivalents thereof as would be recognized by those ordinarily skilled in the relevant arts. It should also be understood that terminology employed herein is used for the purpose of describing particular embodiments only and is not intended to be limiting.
Reference throughout this specification to one embodiment or an embodiment means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Where reference is made to a numerical value using a term such as, for example, about or substantially, the exact numerical value is also disclosed.
As used herein, a plurality of items, structural elements, compositional elements, and/or materials may be presented in a common list for convenience. However, these lists should be construed as though each member of the list is individually identified as a separate and unique member. Thus, no individual member of such list should be construed as a de facto equivalent of any other member of the same list solely based on their presentation in a common group without indications to the contrary. In addition, various embodiments and example of the present invention may be referred to herein along with alternatives for the various components thereof. It is understood that such embodiments, examples, and alternatives are not to be construed as de facto equivalents of one another, but are to be considered as separate and autonomous representations of the present invention.
Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the preceding description, numerous specific details are provided, such as examples of lengths, widths, shapes, etc., to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or with other methods, components, materials, etc. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
While the forgoing examples are illustrative of the principles of the present invention in one or more particular applications, it will be apparent to those of ordinary  skill in the art that numerous modifications in form, usage and details of implementation can be made without the exercise of inventive faculty, and without departing from the principles and concepts of the invention. Accordingly, it is not intended that the invention be limited, except as by the claims set forth below.
The verbs “to comprise” and “to include” are used in this document as open limitations that neither exclude nor require the existence of also un-recited features. The features recited in depending claims are mutually freely combinable unless otherwise explicitly stated. Furthermore, it is to be understood that the use of ″a″ or ″an″ , that is, a singular form, throughout this document does not exclude a plurality.
INDUSTRIAL APPLICABILITY
At least some embodiments of the present invention find industrial application in secure data processing.
ACRONYMS LIST
ABC       Definition
CID       computation identifier
CP        computation party
EDD       Emmanuel, Dario and David mechanism
DP        data provider
DSP       data service provider
HRES      homomorphic re-encryption scheme
PRE       proxy re-encryption
DR        data requester
REFERENCE SIGNS LIST
110 data provider
120 data service provider
130 computation party
140 data requester
300-370 structure of the device of FIGURE 3
410-490 phases of the method of FIGURE 4
510-540 phases of the method of FIGURE 5
610-650 phases of the method of FIGURE 6

Claims (34)

  1. An apparatus comprising at least one processing core, at least one memory including computer program code, the at least one memory and the computer program code being configured to, with the at least one processing core, cause the apparatus at least to:
    -receive, from a data provider, a first ciphertext;
    -perform a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier;
    -obtain a second ciphertext fiom the first ciphertext by performing a cryptographic re-encryption operation, and
    -provide the second ciphertext to a first computation party.
  2. The apparatus according to claim 1, wherein the apparatus is configured to obtain the computation identifier from the first computation party.
  3. The apparatus according to claim 1 or 2, wherein the apparatus is further configured to participate in negotiating a shared secret with the first computation party.
  4. The apparatus according to claim 3, wherein the cryptographic re-encryption operation is performed in dependence of the computation identifier.
  5. The apparatus according to any of claims 1-4, wherein the second ciphertext is not decryptable solely by a secret key of the first computation party.
  6. The apparatus according to any of claims 1-5, wherein the apparatus is further configured to obtain a key pair comprising a public key of the apparatus and a secret key of the apparatus.
  7. The apparatus according to any of claims 1-6, wherein the computation identifier identifies at least one of the following processes: addition, subtraction, multiplication, sign acquisition, comparison, equivalence test and variance.
  8. The apparatus according to any of claims 1-7, wherein the apparatus is further configured to obtain a third ciphertext from the first ciphertext, to provide the third ciphertext to a second computation party, and to obtain a fourth ciphertext from responses received in the apparatus from the first computation party and the second computation party, and to obtain an encrypted result of a computation process identified by the computation identifier.
  9. An apparatus comprising at least one processing core, at least one memory including computer program code, the at least one memory and the computer program code being configured to, with the at least one processing core, cause the apparatus at least to:
    -determine, based on a message from a data requester, a computation identifier;
    -transmit a request to a data service provider, the request comprising the computation identifier;
    -receive, from the data service provider, a first ciphertext;
    -obtain a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and
    -provide the second ciphertext to the data requester as a response to the message.
  10. The apparatus according to claim 9, wherein the apparatus is further configured to check an access policy before providing the request to the data service provider.
  11. The apparatus according to claim 9 or 10, wherein the apparatus is further configured to participate in negotiating a shared secret with the data service provider.
  12. The apparatus according to claim 11, wherein the negotiating comprises a Diffie-Hellman negotiation.
  13. The apparatus according to any of claims 9-12, wherein the apparatus is configured to perform the cryptographic re-encryption operation in dependence of the computation identifier.
  14. The apparatus according to any of claims 9-13, wherein the computation identifier identifies one of the following computation processes: addition, subtraction, multiplication, sign acquisition, comparison, equivalence test and variance.
  15. A method comprising:
    -receiving, from a data provider, a first ciphertext;
    -performing a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier;
    -obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and
    -providing the second ciphertext to a first computation party.
  16. The method according to claim 15, further comprising obtaining the computation identifier from the first computation party.
  17. The method according to claim 15 or 16, further comprising participating in negotiating a shared secret with the first computation party.
  18. The method according to claim 17, wherein the cryptographic re-encryption operation is performed in dependence of the computation identifier.
  19. The method according to any of claims 15-18, wherein the second ciphertext is not decryptable solely by a secret key of the first computation party.
  20. The method according to any of claims 15-19, further comprising obtaining a key pair comprising a public key of the apparatus and a secret key.
  21. The method according to any of claims 15-20, wherein the computation identifier identifies at least one of the following computation processes: addition, subtraction, multiplication, sign acquisition, comparison, equivalence test and variance.
  22. The method according to any of claims 15-21, further comprising obtaining a third ciphertext from the first ciphertext, providing the third ciphertext to a second computation party, and obtaining a fourth ciphertext from responses received from the first computation party and the second computation party, and obtaining an encrypted result of a computation process identified by the computation identifier.
  23. A method comprising:
    -determining, based on a message from a data requester, a computation identifier;
    -transmitting a request to a data service provider, the request comprising the computation identifier;
    -receiving, from the data service provider, a first ciphertext;
    -obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and
    -providing the second ciphertext to the data requester as a response to the message.
  24. The method according to claim 23, further comprising checking an access policy before providing the request to the data service provider.
  25. The method according to claim 23 or 24, further comprising participating in negotiating a shared secret with the data service provider.
  26. The method according to claim 25, wherein the negotiating comprises a Diffie-Hellman negotiation.
  27. The method according to any of claims 23 -26, comprising performing the cryptographic re-encryption operation in dependence of the computation identifier.
  28. The method according to any of claims 23-27, wherein the computation identifier identifies one of the following computation processes: addition, subtraction, multiplication, sign acquisition, comparison, equivalence test and variance.
  29. A system comprising an apparatus according to claim 1, an apparatus according to claim 8, a data requester and a data provider.
  30. An apparatus comprising:
    -means for receiving, from a data provider, a first ciphertext;
    -means for performing a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier;
    -means for obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and
    -means for providing the second ciphertext to a first computation party.
  31. An apparatus comprising:
    -means for obtaining a key pair comprising a public key of an apparatus and a secret key of the apparatus;
    -means for determining, based on a message from a data requester, a computation identifier;
    -means for transmitting a request to a data service provider, the request comprising the computation identifier and a public key of the data requester;
    -means for receiving, from the data service provider, a first ciphertext;
    -means for obtaining a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and
    -means for providing the second ciphertext to the data requester as a response to the message.
  32. A non-transitory computer readable medium having stored thereon a set of computer readable instructions that, when executed by at least one processor, cause an apparatus to at least:
    -receive, from a data provider, a first ciphertext;
    -perform a mathematical manipulation of the first ciphertext, the mathematical manipulation modifying plaintext of the first ciphertext without decrypting the first ciphertext, the mathematical manipulation being identified by a computation identifier;
    -obtain a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and
    -provide the second ciphertext to a first computation party.
  33. A non-transitory computer readable medium having stored thereon a set of computer readable instructions that, when executed by at least one processor, cause an apparatus to at least:
    -obtain a key pair comprising a public key of an apparatus and a secret key of the apparatus;
    -determine, based on a message from a data requester, a computation identifier;
    -transmit a request to a data service provider, the request comprising the computation identifier and a public key of the data requester;
    -receive, from the data service provider, a first ciphertext;
    -obtain a second ciphertext from the first ciphertext by performing a cryptographic re-encryption operation, and
    -provide the second ciphertext to the data requester as a response to the message.
  34. A computer program configured to cause a method in accordance with at least one of claims 15-28 to be performed.
PCT/CN2016/087876 2016-06-30 2016-06-30 Secure data processing Ceased WO2018000317A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201680088554.9A CN109644128A (en) 2016-06-30 2016-06-30 Secure data processing
US16/314,196 US20190229887A1 (en) 2016-06-30 2016-06-30 Secure data processing
PCT/CN2016/087876 WO2018000317A1 (en) 2016-06-30 2016-06-30 Secure data processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/087876 WO2018000317A1 (en) 2016-06-30 2016-06-30 Secure data processing

Publications (1)

Publication Number Publication Date
WO2018000317A1 true WO2018000317A1 (en) 2018-01-04

Family

ID=60785724

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/087876 Ceased WO2018000317A1 (en) 2016-06-30 2016-06-30 Secure data processing

Country Status (3)

Country Link
US (1) US20190229887A1 (en)
CN (1) CN109644128A (en)
WO (1) WO2018000317A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019148335A1 (en) * 2018-01-30 2019-08-08 Nokia Technologies Oy Secure data processing
CN112232639A (en) * 2020-09-22 2021-01-15 支付宝(杭州)信息技术有限公司 Statistical methods, devices and electronic equipment
CN113312654A (en) * 2021-06-29 2021-08-27 重庆交通大学 CSP problem-based homomorphic ciphertext coding and calculating method

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018136811A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. Secure web browsing via homomorphic encryption
WO2018136801A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-to-end secure operations using a query matrix
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US10880275B2 (en) 2017-01-20 2020-12-29 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
CN112307056B (en) * 2019-07-31 2024-02-06 华控清交信息科技(北京)有限公司 Data processing method and device for data processing
CN111224950A (en) * 2019-12-18 2020-06-02 中思博安科技(北京)有限公司 Data exchange method, system and computer storage medium
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
KR102475273B1 (en) * 2020-06-15 2022-12-08 주식회사 크립토랩 Simulation apparatus for homomorphic encryption system and method thereof
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
CN112994880B (en) * 2021-03-19 2022-11-01 深圳大学 Ciphertext policy attribute-based encryption method and device and electronic equipment
CN113301042B (en) * 2021-05-20 2022-06-17 南开大学 Load balancing private data sharing method
KR102466016B1 (en) * 2021-06-21 2022-11-11 주식회사 크립토랩 Server device for processing homomorphic ciphertext and method thereof
CN114915455B (en) * 2022-04-24 2024-06-14 华控清交信息科技(北京)有限公司 A method and device for transmitting encrypted data and a device for transmitting encrypted data
CN119439178B (en) * 2023-08-03 2026-01-06 深圳市速腾聚创科技有限公司 Radar ranging methods, devices, electronic equipment and computer-readable storage media

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1366751A (en) * 2000-01-26 2002-08-28 索尼公司 Data processing system, recording apparatus, data processing method and program providing media
US20020186848A1 (en) * 2001-05-03 2002-12-12 Cheman Shaik Absolute public key cryptographic system and method surviving private-key compromise with other advantages
CN102271037A (en) * 2010-06-03 2011-12-07 微软公司 Key protectors based on online keys
US20130246813A1 (en) * 2011-11-11 2013-09-19 Nec Corporation Database encryption system, method, and program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11201500786UA (en) * 2012-08-08 2015-05-28 Toshiba Kk Re-encryption key generator, re-encryption device, encryption device, decryption device, and program
DK2811708T3 (en) * 2013-06-06 2017-01-16 Nagravision Sa User authentication system and method
CN104239820B (en) * 2013-06-13 2017-11-03 普天信息技术研究院有限公司 A kind of safety storage apparatus
CN103957109B (en) * 2014-05-22 2017-07-11 武汉大学 A kind of cloud data-privacy protects safe re-encryption method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1366751A (en) * 2000-01-26 2002-08-28 索尼公司 Data processing system, recording apparatus, data processing method and program providing media
US20020186848A1 (en) * 2001-05-03 2002-12-12 Cheman Shaik Absolute public key cryptographic system and method surviving private-key compromise with other advantages
CN102271037A (en) * 2010-06-03 2011-12-07 微软公司 Key protectors based on online keys
US20130246813A1 (en) * 2011-11-11 2013-09-19 Nec Corporation Database encryption system, method, and program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019148335A1 (en) * 2018-01-30 2019-08-08 Nokia Technologies Oy Secure data processing
CN112232639A (en) * 2020-09-22 2021-01-15 支付宝(杭州)信息技术有限公司 Statistical methods, devices and electronic equipment
CN112232639B (en) * 2020-09-22 2023-06-30 支付宝(杭州)信息技术有限公司 Statistical method, statistical device and electronic equipment
CN113312654A (en) * 2021-06-29 2021-08-27 重庆交通大学 CSP problem-based homomorphic ciphertext coding and calculating method
CN113312654B (en) * 2021-06-29 2023-05-12 重庆交通大学 Homomorphic ciphertext coding and calculating method based on CSP problem

Also Published As

Publication number Publication date
CN109644128A (en) 2019-04-16
US20190229887A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
WO2018000317A1 (en) Secure data processing
US11165558B2 (en) Secured computing
Zheng et al. Learning the truth privately and confidently: Encrypted confidence-aware truth discovery in mobile crowdsensing
CN110089071B (en) Secure distributed data processing
CN107196926B (en) A kind of cloud outsourcing privacy set comparison method and device
Shao et al. Fine-grained data sharing in cloud computing for mobile devices
EP3939202B1 (en) Method and apparatus for effecting a data-based activity
US12519622B2 (en) Replicated secret share generation for distributed symmetric cryptography
WO2019148335A1 (en) Secure data processing
Alagarsundaram A systematic literature review of the Elliptic Curve Cryptography (ECC) algorithm for encrypting data sharing in cloud computing
EP3376706B1 (en) Method and system for privacy-preserving order statistics in a star network
CN115336224A (en) Adaptive attack-resistant distributed symmetric encryption
Fugkeaw et al. Improved lightweight proxy re-encryption for flexible and scalable mobile revocation management in cloud computing
Hassan et al. [Retracted] A Lightweight Proxy Re‐Encryption Approach with Certificate‐Based and Incremental Cryptography for Fog‐Enabled E‐Healthcare
Somaiya et al. Implementation and evaluation of EMAES–A hybrid encryption algorithm for sharing multimedia files with more security and speed
Wang et al. Privacy preserving computations over healthcare data
Kibiwott et al. Privacy Preservation for eHealth Big Data in Cloud Accessed Using Resource-Constrained Devices: Survey.
EP3716565A1 (en) Controlled data access in a communication network
Hu et al. A Lightweight and Secure Authentication Protocol for 5G mMTC
US20210281570A1 (en) Enabling access to devices in a communication network
CN110035065A (en) Data processing method, relevant apparatus and computer storage medium
Slamanig et al. Anonymity and application privacy in context of mobile computing in eHealth
Ould-Yahia et al. A data-owner centric privacy model with blockchain and adapted attribute-based encryption for internet-of-things and cloud environment
CN114765595B (en) Chat message display method, chat message sending device, electronic equipment and media
Zhou et al. Sds2: Secure data-sharing scheme for crowd owners in public cloud service

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: 16906718

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16906718

Country of ref document: EP

Kind code of ref document: A1