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. 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.
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:
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:
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.
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.
The system of
The system of
The system of
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.
In the systems illustrated in
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 [mi]pk (i=1, 2, . . . , N). The additive homomorphic encryption satisfies the following equation:
D
sk(Πi=1N[mi]pk)=Σi=1Nmi
where Dsk( ) is the corresponding homomorphic decryption algorithm with secret key sk. Reference is made to Paillier (see above), EIGamal “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 . Note that, if h is computed as gx, where x∈R [1, λ(n2)], then x is coprime with ord(
) 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 x∈[1, ord()] (where g is generated by first choosing a random element α∈
n
Encrypt: Given a message m∈n, random number r is chosen uniformly in
n
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))]−1 mod 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 m∈n, 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′)x mod 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): ({tilde over (T)}, )=(T/(T′)x
Decryption (done by Entity B): m=L({tilde over (T)}/()x
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:
(*)
|
.
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., PK=PKDSPSK
KeyGen: Let k be a security parameter and p, q be two large primes, where (p)=
(q)=k(
(⋅) 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 z∈
n
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:
[m]pk
Decryption (Dec): Upon receiving the encrypted data under its own public key, user i can directly decrypt it to obtain the original data:
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 mi∈n 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′=gr mod n2, Ti=(1+mi*n)*PKr mod 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. [mi]pk
Partial Decryption with SKDSP (PDec1): Once [mi] is received by the DSP, algorithm PDec1( ) will be run to transfer it into another ciphertext which can be decrypted by the CP as follows:
Partial Decryption with SKCP (PDec2): Once the message [mi]PK
1) Select the public computation identifier CID, which specifies the operation type.
2) h1=H ((pkj)SK
3) [mi]+={{tilde over (T)}, }={Ti, (Ti′)SK
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) h1=H ((pkj)SK
3) [mi]+={{tilde over (T)}, }={Ti, (Ti′)SK
Second Phase of Re-Encryption (SPRE): Upon receiving the data packet [mi]+, the CP launches re-encryption algorithm SPRE( ) as below:
1) h2=H ((pkj)SK
2) [mi]pk)SK
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
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.
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 PK=PKCPSK(n)) and the public keys of all involved entities. DR 140 j performs similarly to generate its key pair (skj, pkj)=(kj, gk
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:
[mi]=(Ti, Ti′)={(1+mi*n)*PKr
For correctly supporting various computations, the length of the data may be restricted (mi)<
(n)/4. 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
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
Addition: this scheme aims to obtain the sum of all raw data (m=mi) where
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:
[m]=(T, T′)=(Ti,
Ti′).
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:
[m]+=({tilde over (T)}, )={T, (T′)a*gH((pk
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:
[m]pk)b*gH((pk
Then the CP sends ([m]pk
Phase 490 (Data Access at DR): The DR can obtain the aggregated result by calling the algorithm DPRE( ):
m=L(
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:
[mi]n−1={{(1+mi*n)PKr
Phase 460 (Data Preparation at DSP): The DSP first computes [−m2]=[m2]n−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 (m=mi). 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 (mi)<
(n)/(2f).
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:
[c1*m1]={T1, (T1′)c
[c1*m1]PK
[c2*m2]={T2, (T2′)c
[c2*m2]PK
[c3]pk
The data packet sent to the CP 130 is {[c1*m1]PK
Phase 480 (Data Process at CP): Upon receiving the data packet from the CSP, the CP uses the algorithm PDec2( ) to decrypt the data:
c
1
*m
1
=T
1
(1)/(T1′(1))b,
c
2
*m
2
=T
2
(1)/(T2′(1))b,
It further multiplies the two values and then calls Enc( ) to encrypt it as (T, T′)=[c1*c2*m1*m2]pk
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:
Sign Acquisition: As (m)<
(n)/4, 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 (c1)<
(n)/4. It first computes
Then it flips a coins s. If s=0; it computes as follows: (T1(1), T1′(1))={Tn−c
The DSP also encrypts s with pkj through Enc( ): [s]pk
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 (m′) with
(n)/2. If
(m′)<
(n)/2, it calls Enc( ) to encrypt u=1 with pkj; otherwise, it encrypts u=0 with pkj;
[u]pk
It further multiplies the two ciphertexts.
[s+u]pk
Phase 490 (Data Access at DR): DR j can call Dec( ) to obtain the final result: u+s=L(T/(T′)sk
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.
[m1]=(T1, T1′)={(1+m1*n)*PKr
[m2]=(T2, T2′)={(1+m2*n)*PKr
Phase 460 (Data Preparation at DSP): DSP first computes to get the subtraction of encrypted data:
(T, T′)={T1*(T2)n−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 [s1+u1]pk
To conceal the comparing result of m1 and m2, [s1+u1]pk
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 m=Σi=1N mi. Variance function can be presented as
where
Phase 460 (Data Preparation at DSP): First, the DSP 120 obtains [N*mi−Σi=1N mi] through following steps:
[m]=(T ,T′)=[m1]*[m2]*[m3],
[−m]=(Tn−1, (T′)n−1);
[N*mi]=[mi]N for i=1,2,3;
[N*mi−m]=[mi]N*[−m] for i=1,2,3;
Then the DSP 120 partially decrypts the data with its secret key by calling PDec1( ) to obtain: [N*mi−m]PK
[ci(N*mi−m)]PK
Then the DSP 120 send the three ciphertexts to the CP 130. In addition, DSP 120 needs to store c12, c22, c32.
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:
[Ci2]pk
Finally, [M′]pk
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′/N
3.
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, gb mod n2) and (SKv, PKv)=(v, hv). Hence, we have PK=PKba=PKab and PK′=PKva=PKav. Two messages are encrypted as:
[m1]PK={T1=(1+m1*n)PKr
[m2]PK′={T2=(1+m1*n)PK′r
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 (skj, pkj)=(kj, gk
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 [m1+w]PK
Data Process at CPs: Upon receiving [m1+w]PK
Additional Operation at DSP: DSP 120 multiplies the two ciphertexts to obtain [m1+m2]pk
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:
[c1*m1]PK,
)={T1c
[c2m2]PK,
)={T2c
[c3]pk
The data packet sent to CP B is {[c1*m1]PK
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 [c2*m2]PK
Finally, the CP B encrypts c1*c2*m1*m2 with the DR j's public key and sends it together with [c3]pk
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=m
1
*m
2
=c
1
*c
2
*m
1
*m
2
*c
3 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 [m1]PK and [m2]PK, to the CP B and the CP V respectively.
Data Preparation at CPs: The CP V calls PDec1( ) to obtain [m2]PK
[m1-2]PK
{T, T′}=[2*m1-2+1]PK
Then it flips a coins. If s=0; it computes as follows:
(,
)={Tn−c
Otherwise, it computes (,
)={Tc
The CP B also encrypts s with the public key of DR: [s]pk,
) and [s]pk
Data Process at DSP: The DSP decrypts (,
) to obtain raw data m′=(−1)s+1*c1*[2*(m1−m2)+1] mod n2. The DSP compares its length with
(n)/2. If
(m′)<
(n)/2, it encrypts u=1 with pkj; otherwise, it encrypts u=0 with pkj;
[u]pk
It further multiplies the two ciphertexts.
[s+u]pk
Data Access at DR: DR j can call Dec( ) to obtain the final result: u+s=
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
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.
At least some embodiments of the present invention find industrial application in secure data processing.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2016/087876 | 6/30/2016 | WO | 00 |