The disclosure relates to functional encryption, and adaptively simulation secure functional encryption schemes for attribute-weighted sums.
Functional encryption (FE) redefines the classical encryption procedure with the motivation to overcome the limitation of the “all-or-nothing” paradigm of decryption. In a traditional encryption system, there is a single secret key such that a user given a ciphertext can either recover the whole message or learns nothing about it, depending on the availability of the secret key. FE in contrast provides fine grained access control over encrypted data by generating artistic secret keys according to the desired functions of the encrypted data to be disclosed. More specifically, in a public-key FE scheme for a function class , there is a setup authority which produces a master secret key and publishes a master public key. Using the master secret key, the setup authority can derive secret keys or functional decryption keys SKƒ associated to functions ƒ∈. Anyone can encrypt messages msg belonging to a specified message space msg∈ using the master public key to produce a ciphertext CT. The ciphertext CT along with a secret key SKƒ recovers the function of the message ƒ(msg) at the time of decryption, while unable to extract any other information about msg. More specifically, the security of FE requires collusion resistance meaning that any polynomial number of secret keys together cannot gather more information about an encrypted message except the union of what each of the secret keys can learn individually.
Prior work includes an FE scheme for a new class of functionalities termed as “attribute-weighted sums”. This is a generalization of inner product functional encryption (IPFE). In such a scheme, a database of N attribute-value pairs (xi, zi)i=1, . . . , N are encrypted using the master public key of the scheme, where xi is a public attribute (e.g., demographic data) and zi is a private attribute containing sensitive information (e.g., salary, medical condition, loans, college admission outcomes). A recipient having a secret key corresponding to a weight function ƒ can learn the attribute-weighted sum of the database, i.e., Σi=1N ƒ(xi)zi. The attribute-weighted sum functionality appears naturally in several real life applications. For instance, if we consider the weight function ƒ as a boolean predicate, then the attribute-weighted sum functionality Σi=1N ƒ(xi)zi would correspond to the average zi over all users whose attribute xi satisfies the predicate ƒ. Important practical scenarios include average salaries of minority groups holding a particular job (zi=salary) and approval ratings of an election candidate amongst specific demographic groups in a particular state (zi=rating). Similarly, if zi is boolean, then the attribute-weighted sum becomes Σi:z
Other work considered a more general case of the notion where the domain and range of the weight functions are vectors over some finite field . In particular, the database consists of N pairs of public/private attribute vectors (xi, zi)i=1, . . . , N which is encrypted to a ciphertext CT. A secret key SKƒ generated for a weight function ƒ allows a recipient to learn Σi=1N ƒ(xi)T zi from CT without revealing any information about the private attribute vectors (zi)i=1, . . . , N. To handle a large database where the number of users are not a-priori bounded, prior work considered the notion of unbounded-slot FE scheme for attribute-weighted sum. Thus, in their scheme, the number of slots N is not fixed while generating the system parameters and any secret key SKƒ can decrypt an encrypted database having an arbitrary number of slots. Another advantage of unbounded-slot FE is that the same system parameters and secret keys can be reused for different databases with variable lengths, which saves storage space and reduces communication cost significantly.
The unbounded-slot FE work supports expressive function class of arithmetic branching programs (ABPs) which is capable of capturing boolean formulas, boolean span programs, combinatorial computations, and arithmetic span programs. The FE scheme of prior work is built in asymmetric bilinear groups of prime order and is proven secure in the simulation-based security model, which is known to be the desirable security model for FE, under the k-Linear (k-Lin)/Matrix Diffie-Hellman (MDDH) assumption. Moreover, their scheme enjoys ciphertext size that grows with the number of slots and the size of the private attribute vectors but is independent of the size of the public attribute vectors. Towards constructing an unbounded-slot scheme, prior work first constructed a one-slot scheme and then bootstrap to the unbounded-slot scheme via a semi-generic transformation.
However, one significant limitation of the FE scheme of prior work is that the scheme only achieves semi-adaptive security. While semi-adaptive security, where the adversary is restricted to making secret key queries only after making the ciphertext queries, may be sufficient for certain applications, it is much weaker compared to the strongest and most natural notion of adaptive security which lets the adversary request secret keys both before and after making the ciphertext queries. Thus it is desirable to have an adaptively secure scheme for this important functionality that supports unbounded number of slots.
One artifact of the standard techniques for proving adaptive security of FE schemes based on the so called dual system encryption methodology is the use of a core information theoretic transition limiting the appearance of an attribute in the description of the associated functions at most once (or an a-priori bounded number of times at the expense of ciphertext and key sizes scaling with that upper bound. Recently, others have presented advanced techniques to overcome the one-use restriction. However, their techniques were designed in the context of attribute-based encryption (ABE) where attributes are totally public. Currently, it is not known how to remove the one-use restriction in the context of adaptively secure FE schemes where attributes are not fully public as is the case for the attribute-weighted sum functionality. Thus, there is a need to solve the following open problem: To construct adaptively simulation-secure one-slot/unbounded-slot FE scheme for the attribute-weighted sum functionality with the weight functions expressed as arithmetic branching programs featuring compact ciphertexts, that is, having ciphertexts that do not grow with the number of appearances of the attributes within the weight functions, from the k-Lin assumption.
In various embodiments, a computer-implemented method, computing device, and computer-readable storage media are disclosed. In one example embodiment for a computerized method for encrypting for a functional encryption scheme, the computer-implemented method, computing device, and computer-readable storage media can comprise: executing a computerized setup algorithm, the setup algorithm comprising: executing a functional encryption setup algorithm twice to generate a set of master public-secret key pairs FE.MSK and FE.MPK and a set of master public-secret key pairs and ; outputting a master secret key MSK as FE.MSK and and a master public key MPK as FE.MPK and , and storing the output master keys in an electronic setup storage unit; executing a computerized key generation algorithm by: receiving the master secret key MSK as FE.MSK and from the setup storage unit and a function ƒ where ƒ comprises sub-functions ƒt, wherein t represents an integer index; sampling random values α, βt such that the sum of all entries of βt is 0; sampling random values rt for input for a garbling procedure, wherein the garbling procedure randomizes a function comprising α, ƒt, βt, wherein α and βt are secrets, and the garbling procedure outputs a set of label functions {} where j runs over the number of label functions; setting values v as α and generating an FE secret key FE.SK for the values v; setting values v1,t comprising , α, and generating an FE secret key FE.SK1,t for the values v1,t; setting values vj,t as , and generating a FE secret key FE.SKj,t for the values vj,t; setting values {circumflex over (v)}t comprising rt, α; generating a functional encryption secret key for the values {circumflex over (v)}t; and outputting the secret key SKƒ as FE.SK, {FE.SKj,t}, {} and ƒ, and storing the output in an electronic key generation storage unit.
Further embodiments can include encryption comprising: receiving the master public key MPK as FE.MPK and , one or more public attributes x, and one or more private attributes z; sampling randomness s and setting values u comprising s, x, and computing FE ciphertext FE.CT for the value u; setting values ht comprising of s and z, and computing FE ciphertext for the value ht; and outputting the ciphertext CT as FE.CT and and storing the output in an electronic encryption device storage unit.
Further embodiments can include decryption comprising: receiving the function ƒ and the secret key SKƒ for function ƒ; receiving one or more public attributes x and a ciphertext CT for x; retrieving FE.SK, FE.SKj,t, from SKƒ and retrieving FE.CT and from CT; retrieving sub-functions ƒt from the function ƒ; decrypting FE.CT by running the decryption algorithm of FE using the secret key FE.SK and get a value ρ; decrypting FE.CT by running the decryption algorithm of FE using the secret key FE.SKj,t and get a value ; decrypting by running the decryption algorithm of FE using the secret key and get a value ; running the evaluation algorithm of the garbling scheme using the values , and the one or more public attributes x and the sub-function ƒt, and get a value d; and recovering the functional value μ from ρ and d, and outputting the value μ as the plaintext and storing the output in an electronic decryption device storage unit.
In further embodiments, the first set is for encrypting a public part of attributes and the second set is for use in encrypting a private part of the attributes.
The accompanying drawings, which are included to provide further understanding and are incorporated in and constitute a part of this specification, illustrate disclosed embodiments, and together with the description, serve to explain the principles of the disclosed embodiments. In the drawings:
As disclosed herein, we resolve the above open problem. More precisely, we make the following contributions.
The disclosed FE schemes are built upon asymmetric bilinear groups of prime order. We prove the security of our FE schemes based on the standard (bilateral) k-Lin/(bilateral) MDDH assumption(s). Thus our results can be summarized as follows.
Theorem 1 (Informal) Under the (bilateral) k-Lin/MDDH assumption(s), there exist adaptively simulation secure one-slot/unbounded-slot FE scheme for attribute-weighted sums against a bounded number of ciphertext and an unbounded number of secret-key queries, and having compact ciphertexts, that is, without the one-use restriction, in bilinear groups of prime order.
The bilateral MDDH assumption is the plain MDDH assumption except that the elements are available in the exponents of both source groups of a bilinear group simultaneously. This assumption has recently been utilized in the context of achieving FE for quadratic functions in the standard model and broadcast encryption scheme with O(N1/3) parameter sizes from bilinear maps, where N is the total number of users in the system. Unlike prior work, our construction is semi-generic and is built upon two cryptographic building blocks, namely a slotted inner product functional encryption (IPFE), which is a hybrid of a public-key IPFE and a private-key function-hiding IPFE, and an information theoretic primitive called arithmetic key garbling scheme (AKGS). For bootstrapping from one-slot to unbounded-slot construction, we make use of a semi-generic transformation, but analyze its security in the adaptive simulation-based setting as opposed to the semi-adaptive setting. By attribute-hiding, we mean the so-called “strong” attribute-hiding, as stipulated by the security definitions of FE, meaning that private attributes must remain hidden even to decryptors who are able to perform a successful decryption. FE schemes under standard computational assumptions.
The techniques of prior work are developed to achieve compact ciphertexts, that is, without the one-use restriction in the context of indistinguishability-based adaptively secure ABE (that is, for payload-hiding security and not attribute-hiding). In this work, we extend their techniques to overcome the one-use restriction into the context of adaptive simulation-based attribute-hiding security for the first time. The high level approach of prior work to mitigate the one-use restriction is to replace the core information theoretic step of the dual system technique with a computational step. However the application of this strategy in their framework crucially rely on the payload hiding security requirement, that is, the adversaries are not allowed to query secret keys that enable a successful decryption. In contrast, in the setting of attribute-hiding, adversaries are allowed to request secret keys enabling successful decryption and extending the technique of prior work into this context appears to be non-trivial. We resolve this by developing a three-slot variant of their framework, integrating the pre-image sampleability of the inner product functionality, and carefully exploiting the structures of the underlying building blocks, namely AKGS and slotted IPFE.
Herein is disclosed the first adaptively simulation secure functional encryption (FE) schemes for attribute-weighted sums. In such an FE scheme, encryption takes as input N pairs of attribute {(xi, zi)}i∈[N] for some N∈ where the attributes {xi}i∈[N] are public while the attributes {zi}i∈[N] are private. The indices i∈[N] are referred to as the slots. A secret key corresponds to some weight function ƒ, and decryption recovers the weighted sum Σi=1Nƒ(xi)zi. This is an important functionality with a wide range of potential real life applications. In the proposed FE schemes attributes are viewed as vectors and weight functions are arithmetic branching programs (ABP). We present two schemes with varying parameters and levels of adaptive security.
Our schemes are built upon asymmetric bilinear groups of prime order and the security is derived under the standard (bilateral) k-Linear (k-Lin) assumption. Our work resolves an open problem posed by an unbounded-slot FE scheme for attribute-weighted sum achieving only semi-adaptive simulation security. At a technical level, the invention extends the adaptive security framework devised to achieve compact ciphertexts in the context of indistinguishability-based payload-hiding security into the setting of simulation-based adaptive attribute-hiding security.
In this section, we present our main technical ideas. Let G=(, , , g1, g2, e) be a bilinear group of prime order p and denotes gia for any a∈ and i∈{1, 2, T}, which notation can also be extended in case of vectors and matrices. At the top most level of strategy, we first design an adaptively simulation-secure one-slot FE scheme and then apply a compiler to bootstrap to an unbounded-slot scheme. For the later part, we use a known compiler, however, the known compiler only works in the context of semi-adaptive security, that is, the compiler can bootstrap a semi-adaptively secure one-slot FE scheme to a semi-adaptively secure unbounded-slot scheme. In contrast, we analyze the security of the same transformation in the context of the simulation-based adaptive security framework. We observe that in order to prove the adaptive security for the compiler, the (bilateral) k-Lin/(bilateral) MDDH assumption is needed whereas for semi-adaptive security, the plain k-Lin/MDDH was sufficient. Moreover, we are only able to establish the simulation-based adaptive security for the transformation for settings where only a bounded number of secret-key queries are allowed prior to making the ciphertext queries.
The technical ideas disclosed herein lie in the design and analysis of our one-slot scheme which we describe first in this technical overview. Next, we would briefly explain the modifications to our one-slot scheme leading to our extended one-slot scheme, followed by explaining our analysis of the one-slot to an unbounded-slot bootstrapping compiler applied on our one-slot extended FE (extFE) scheme.
Recall that the adaptive simulation security of an FE scheme is proven by showing the indistinguishability between a real game with all the real algorithms and an ideal game where a simulator simulates all the ciphertexts and secret keys queried by the adversary. When an adversary makes a pre-ciphertext query for some function ƒ, the simulator provides the secret key to the adversary. When the adversary makes a challenge ciphertext query for an attribute vector pair (x,z), the simulator receives the information of x but not z. Instead it receives the functional values ƒ(x)Tz for all the pre-ciphertext secret keys. Based on this information, the simulator must simulate the challenge ciphertext. Finally, when an adversary makes a secret-key query for some function ƒ after making a ciphertext query, the simulator receives ƒ along with the functional value ƒ(x)Tz for that key and simulates the key based on this information.
Designing Adaptively Simulation Secure One-Slot extFE
Arithmetic Key Garbling Schemes The notion is called arithmetic key garbling scheme (AKGS) which garbles a function ƒ: → along with two secrets α, β∈ so that the evaluation with an input x∈ gives the value αƒ(x)+β. Note that the evaluation does not reveal any information about α and β. In particular, the AKGS has the following algorithms:
AKGS is a partial garbling process as it only hides α,β which is captured by the usual simulation security. The simulator produces simulated labels (, . . . , )←SimGarble(ƒ, x, αƒ(x)+β) which is the same distribution as the actual label function values evaluated at input x.
Function-Hiding Slotted IPFE A private-key function-hiding inner product functional encryption (IPFE) scheme based on a bilinear group G=(, , , g1, g2, e) generates secret keys IPFE.SK for vectors ∈ and produces ciphertexts IPFE.CT for vectors ∈ using the master secret key of the system. Both the key generation and encryption algorithm perform linear operations in the exponent of the source groups , respectively. The decryption recovers the inner product ∈ in the exponent of the target group. The sizes of the secret keys, IPFE.SK, and ciphertexts, IPFE.CT, in such a system grow linearly with the sizes of the vectors v and u respectively. Roughly, the function-hiding security of an IPFE ensures that no information about the vectors v, u is revealed from IPFE.SK and IPFE.CT except the inner product value v·u which is trivially extracted using the decryption algorithm. One slotted version of IPFE is a hybrid between a secret-key function-hiding IPFE and a public-key IPFE. The index set of the vectors u is divided into two subsets: public slots Spub and private slot Spriv so that the vector u is written as u=(upub∥upriv). With addition to the usual (secret-key) encryption algorithm, the slotted IPFE has another encryption algorithm that uses the master public key of the system to encrypt the public slots of u, i.e. vectors with upriv=0. The slotted IPFE preserves the function-hiding security with respect to the private slots only as anyone can encrypt arbitrary vectors into the public slots.
We aim to design our decryption algorithm such that given a secret key for a weight function ABP ƒ: → with coordinate functions ƒ1, . . . , ƒn:→ and an encryption of an attribute vector pair (x,z)∈×, the decryption algorithm would first recover the value for each coordinate z[t]ƒt(x) masked with a random scalar βt, that is, z[t]ƒt(x)+βt and then sum over all these values to obtain the desired functional value (we take the scalars {βt}t∈[n′] such that Σt=1n′βt=0 mod p). Thus we want our key generation algorithm to use AKGS to garble the functions z[t]ƒt(x)+βt. Note that here, βt is a constant but z[t] is a variable. While doing this garbling, we also want the label functions to involve either only the variables x or the variable z[t]. This is because, in the construction we need to handle x and z[t] separately since x is public whereas z[t] is private. This is unlike prior work which garbles αƒ(x)+β where both α, β are known constants and only x is a variable. To solve this issue, we garble an extended ABP where we extend the original ABP ƒt by adding a new sink node and connecting the original sink node of ƒt to this new sink node with a directed edge labeled with the variable z[t].
We also make use of a particular instantiation of AKGS where we observe that the first m coefficient vectors , . . . , are independent of z[t] and the last coefficient vector involves only the variable z[t]. In the setup phase two pairs of IPFE keys (IPFE.MSK, IPFE.MPK) and (, ) for a slotted IPFE are generated for appropriate public and private index sets. The first instance of IPFE is used to handle the public attributes x, whereas the second instance for the private attributes z. Let ƒ=(ƒ1, . . . , ƒn′):→ be a given weight function ABP such that ƒt:→ is the t-th coordinate ABP of ƒ. To produce a secret-key SKƒ, we proceed as follows:
IPFE.SK=IPFE.KeyGen(IPFE.MSK,,0kn∥0,0n,0n′)
IPFE.SKj,t=IPFE.KeyGen(IPFE.MSK,, . . . ,∥0,0n,0n′,0n′) for j∈[m]
=IPFE.KeyGen(,, . . . ,rt(k)[m],α∥0,0,0,0,0,0,0)
Here, we separate public and private slots by “∥” and 0 denotes a vector of all zero elements. Now, to produce a ciphertext CT for some attribute vectors (x,z), we use the following steps:
Decryption first uses IPFE.Dec to compute
and then apply the evaluation procedure of AKGS to get
Finally, multiplying all these evaluated values and utilizing the fact ΣtE[n′]βt·s=0, we recover ƒ(x)Tz=Σt∈[n′]z[t]ƒt(x).
The Simulator for Our One-Slot FE Scheme We now describe our simulator of the adaptive game for our one-slot FE scheme. Note that the private slots on the right side of “∥” will be used by the simulator and we program them during the security analysis. For the q-th secret-key query corresponding to a function ƒq=(ƒq,1, . . . , ƒq,n′), the simulator sets public slots of all the vectors vq, vq,j,t for j∈{1, . . . , mq+1} as in the original key generation algorithm. Instead of using the linear combination of the label vectors, the simulator uses freshly sampled garblings to set the private slots. The pre-challenge secret key SKƒ
where (, . . . , )←Garble({tilde over (α)}qz[t]ƒq,t(x)+βq,t; {tilde over (r)}q,t), {tilde over (α)}q, βq,t← such that Σt∈[n′]βq,t=0 mod p. We write 0ξ as a vector of length ξ with all zero elements. To simulate the ciphertext for the challenge attribute x*, the simulator uses the set of all functional values ={(ƒq, ƒq(x*)Tz*):q∈[Qpre]} to compute a dummy vector d satisfying ƒq(x*)Td=ƒq(x*)Tz* for all q∈[Qpre]. Since the inner product functionality is pre-image sampleable and both ƒq, x* are known to the simulator, a dummy vector d can be efficiently computed via a polynomial time algorithm. The simulated ciphertext becomes
The post-challenge secret-key query for the q-th function ƒq=(ƒq,1, . . . , ƒq,n′) with q>Qpre is answered using the simulator of AKGS. In particular, we choose βq,t← satisfying Σt∈[n′]βq,t=0 mod p and compute the simulated labels as follows:
Note that, for post-challenge secret keys the functional value ƒq(x*)Tz* is known and hence the simulator can directly embed the value into the secret keys. The post-challenge secret key SKfq takes the form
Bootstrapping from One-Slot FE to Unbounded-Slot FE
Prior work includes a compiler that upgrades the one-slot FE into an unbounded-slot FE scheme where the number of slots N can be arbitrarily chosen at the time of encryption. The transformation also preserves the compactness of ciphertexts of the underlying one-slot scheme. However, their transformation actually needs a one-slot extFE scheme as defined above.
In this section, we provide the necessary definitions and backgrounds that will be used in the sequence.
Notations We denote by λ the security parameter that belongs to the set of natural number and 1λ denotes its unary representation. We use the notation s←S to indicate the fact that s is sampled uniformly at random from the finite set S. For a distribution , we write x← to denote that x is sampled at random according to distribution . A function negl:← is said to be a negligible function of λ, if for every c∈ there exists a λc∈ such that for all λ>λc, |negl(λ)<λ−c.
Let Expt be an interactive security experiment played between a challenger and an adversary, which always outputs a single bit. We assume that is a function of λ and it is parametrized by an adversary and a cryptographic protocol C. Let and be two such experiment. The experiments are computationally/statistically indistinguishable if for any PPT/computationally unbounded adversary there exists a negligible function negl such that for all λ∈,
We write
if they are computationally indistinguishable (or simply indistinguishable). Similarly,
means statistically indistinguishable and ≡ means they are identically distributed.
For n∈, we denote [n] the set {1, 2, . . . , n} and for n, m∈ with n<m, we denote [n, m] be the set {n, n+1, . . . , m}. We use lowercase boldface, e.g., v, to denote column vectors in and uppercase boldface, e.g., M, to denote matrices in for p, n, m∈. The i-th component of a vector v∈ is written as v[i] and the (i,j)-th element of a matrix M∈ is denoted by M[i,j]. The transpose of a matrix M is denoted by MT such that MT[i,j]=M[j,i]. To write a vector of length n with all zero elements we write 0n or simply 0 when the length is clear from the context. Let u, v∈, then the inner product between the vectors is denoted as u·v=uTv=Σi∈[n]u[i]v[i]∈.
Let ƒ:→ be an affine function with coefficient vector f=(f[const], f[coef1], . . . f[coefn]). Then for any x∈, we have ƒ(x)=f[const]+Σi∈[n]f[coefi]x[i]∈.
We use a pairing group generator that takes as input 1λ and outputs a tuple G=(, , , g1,
g2, e) where , , are groups of prime order p=p(λ) and gi is a generator of the group for i∈{1,2}. The map e:×→ satisfies the following properties:
The group operations in for i∈{1, 2, T} and the map e are efficiently computable in deterministic polynomial time in the security parameter λ. For a matrix A and each i∈{1, 2, T}, we use the notation to denote giA where the exponentiation is element-wise. The group operation is written additively while using the bracket notation i.e. +=+ for matrices A and B. Observe that, given A and we can efficiently compute =A·. We write the pairing operation multiplicatively, i.e. e(, )==.
Assumption 1 (Matrix Diffie-Hellman Assumption) Let k=k(λ), =(λ), q=q(λ) be positive integers. We say that the assumption holds in (i∈{1, 2, T}) if for all PPT adversary there exists a negligible function negl such that
Prior work showed that the k-Linear (k-Lin) assumption implies MDDHk,k+11 and MDDHk,k+11 implies for all k, q∈ and >k with a tight security reduction. Henceforth, we will use MDDHk to denote MDDHk,k+11.
We consider bilateral assumption which is a strengthening of the assumption. The bilateral assumption is defined as follows.
Assumption 2 (Bilateral Matrix Diffie-Hellman Assumption) Let k=k(λ), =(λ),q=q(λ) be positive integers. We say that the bilateral () assumption holds if for all PPT adversary there exists a negligible function negl such that
Arithmetic Branching Program (ABP) is a computational model that can be used to model boolean formula, boolean branching program or arithmetic formula through a linear time reduction with a constant blow-up in their respective sizes. In this work, we consider ABP over .
Definition 1 (Arithmetic Branching Program) An arithmetic branching program (ABP) over is a weighted directed acyclic graph (V F, E, ϕ, v0, v1), where V is the set of all vertices, E is the set of all edges, ϕ:E→(→) specifies an affine weight function for each edge, and v0, v1∈V are two distinguished vertices (called the source and the sink respectively). The in-degree of v0 and the out-degree of v1 are 0. It computes a function ƒ:→ given by
where is the set of all v0-v1 path and e∈P denotes an edge in the path P∈. The size of the ABP is |V|, the number of vertices.
We denote by the class of ABPs over :
={ƒ|ƒ is an ABP over for some prime p and positive integer n}
The class of ABP can be extended in a coordinate-wise manner to a ABPs ƒ:→. More precisely, an ABP ƒ:→ has all its weight functions ϕ(ϕ1, . . . , ϕn′):E→(→) with each coordinate function ϕt for t∈[n′] of ϕ being an affine function in x having scalar constants and coefficients. Therefore, such a function ƒ can be viewed as ƒ=(ƒ1, . . . , ƒa) with each coordinate function ƒt:→ being an ABP that has the same underlying graph structure as that of ƒ and having ϕt:E→(→) as the weight functions. The class of all such functions is given by
Thus can alternatively be viewed as .
Lemma 1 Let ƒ=(V, E, ϕ, v0, v1)∈ be an ABP of size m and v0, v2, . . . , vm−1, v1 be stored topologically. Let M be a square matrix of order (m−1) defined by
Then the entries of M are affine in x and ƒ(x)=det(M).
We formally present the syntax of FE for attribute-weighted sum and define adaptive simulation security of the primitive. We consider the function class and message space =(×)*.
Definition 2 (The Attribute-Weighted Sum Functionality) For any n, n′∈ the class of attribute-weighted sum functionalities is defined as
Definition 3 (Functional Encryption for Attribute-Weighted Sum) An unbounded-slot FE for attribute-weighted sum associated to the function class and the message space consists of four PPT algorithms defined as follows:
Correctness The unbounded-slot FE for attribute-weighted sum is said to be correct if for all (xi, zi)iE[N]∈(×)* and ƒ∈ABP(n,n′), we get
We consider adaptively simulation-based security of FE for attribute-weighted sum.
Definition 4 Let (Setup, KeyGen, Enc, Dec) be an unbounded-slot FE for attribute-weighted sum for function class and message space . The scheme is said to be (Qpre, QCT, Qpost)-adaptively simulation secure if for any PPT adversary making at most QCT ciphertext queries and Qpre, Qpost secret key queries before and after the ciphertext queries respectively, we have
where the experiments are defined as follows. Also, an unbounded-slot FE for attribute-weighted sums is said to be (poly, QCT, poly)-adaptively simulation secure if it is (Qpre, QCT, Qpost)-adaptively simulation secure as well as Qpre and Qpost are unbounded polynomials in the security parameter λ.
KeyGen(MSK,·)
KeyGen
*(MSK*,·)
KeyGen*
(MSK*,(x
*)
,·,·)
A slotted inner product functional encryption (slotted IPFE) is a hybrid variant of secret-key and public-key IPFE. More specifically, the index set S of the vectors is partitioned into two sets Spub containing public slots and Spriv containing the private slots. While computing secret-keys, the slotted IPFE encodes elements of the vector in public/private slots using the master secret-key, similar to the case of secret-key IPFE. However, the encryption procedure is only allowed to encode vector elements in the public slots using master public-key as is the case for public-key IPFE. It has been demonstrated that slotted IPFE lets us use the dual system encryption techniques during the security analysis of the cryptographic constructions built from it. We consider the definition of slotted IPFE with respect to some pairing group, that is, all the vectors and inner products in the scheme are encoded in the exponent of the underlying pairing group.
Definition 5 (Slotted Inner Product Functional Encryption) Let G=(, , , g1, g2, e) be a tuple of pairing groups of prime order p. A slotted inner product functional encryption (IPFE) scheme based on G consists of 5 efficient algorithms:
Correctness The correctness of a slotted IPFE scheme requires the following two properties.
Security Let (IPFE.Setup, IPFE.KeyGen, IPFE.Enc, IPFE.Dec, IPFE.SlotEnc) be a slotted IPFE. The scheme is said to be adaptively function-hiding secure if for all PPT adversary , we have
where the experiment (1λ, b) for b∈{0, 1} is defined as follows:
KeyGen
(·, ·):
Enc
(·, ·):
where vj|Spub represents the elements of vj sitting at the indices in Spub.
Lemma 2 Let G=(, , , g1, g2, e) be a tuple of pairing groups of prime order p and k≥1 an integer constant. If MDDHk holds in both groups , , then there is an adaptively function-hiding secure IPFE scheme based on G.
Prior work introduced arithmetic key garbling scheme (AKGS). The notion of AKGS is an information theoretic primitive, inspired by randomized encodings and partial garbling schemes. It garbles a function ƒ:→ (possibly of size (m+1)) along with two secrets z,β∈ and produces affine label functions L1, . . . , Lm+1:→. Given ƒ, an input x∈ and the values L1(x), . . . , Lm+1(x), there is an efficient algorithm which computes zƒ(x)+β without revealing any information about z and β.
Definition 6 (Arithmetic Key Garbling Scheme (AKGS)) An arithmetic garbling scheme (AKGS) for a function class ={ƒ}, where ƒ:→, consists of two efficient algorithms:
Correctness The AKGS is said to be correct if for all ƒ:→∈, z, β∈ and x∈, we have
The scheme have deterministic shape, meaning that m is determined solely by ƒ, independent of z,β and the randomness in Garble. The number of label functions, (m+1), is called the garbling size of ƒ under this scheme.
Linearity The AKGS is said to be linear if the following conditions hold:
Simulation-Based Security Herein, we consider linear AKGS for our application. Now, we state the usual simulation-based security of AKGS, which is similar to the security of partial garbling scheme.
An AKGS=(Garble, Eval) for a function class is secure if there exists an efficient algorithm SimGarble such that for all ƒ:→, z, β∈ and x∈, the following distributions are identically distributed:
The simulation security of AKGS is used to obtain semi-adaptive or selective security of FE for attribute-weighted sum, however it is not sufficient for achieving adaptive security. We consider the piecewise security of AKGS where it was used to get adaptive security for ABE.
Definition 7 (Piecewise Security of AKGS) An AKGS=(Garble, Eval) for a function class is piecewise secure if the following conditions hold:
Lemma 3 A piecewise secure AKGS=(Garble, Eval) for a function class is also simulation secure.
We now define special structural properties of AKGS, related to the piecewise security of it.
Definition 8 (Special Piecewise Security of AKGS) An AKGS(Garble, Eval) for a function class is special piecewise secure if for any ƒ:→∈, z, β∈ and x∈ it has the following special form:
Lemma 4 A special piecewise secure AKGS=(Garble, Eval) for a function class is also piecewise secure. The RevSamp algorithm (required in piecewise security) obtained for a special piecewise secure AKGS is linear in γ, , . . . , and perfectly recovers even if the randomness of Garble is not uniformly sampled. More specifically, we have the following:
Note that, equation 7 follows from the linearity of Eval and equation 8 ensures that RevSamp perfectly computes (which can be verified by equation 7 with γ=zƒ(x)+β).
Lemma 5 A piecewise secure AKGS=(Garble, Eval) is also special piecewise secure after an appropriate change of variable for the randomness used by Garble.
Instantiation of AKGS. We now discuss an instantiation of AKGS=(Garble, Eval) for the function class =.
Garble(zƒ(x)+β) It takes input an ABP ƒ:→∈ of size (m+1) and two secrets z, β∈. The algorithm works as follows:
Remark 1 We note down some structural properties of Garble as follows:
Eval(ƒ, x, , . . . , ) It takes input an ABP ƒ:→∈ of size (m+1), an input x∈ and (m+1) labels , . . . , . It proceeds as follows:
For correctness of the evaluation procedure, we see that when =Lj(x) for all j∈[m] and =Lm+1(z), Eval computes
The determinant of M′ is calculated via Laplace expansion in the last column.
Remark 2 Here, we observe some structural properties of Eval which we require for our application.
Now, we describe the simulator of AKGS which simulates the values of label functions by using ƒ, x and zƒ(x)+β.
SimGarble(ƒ, x, zƒ(x)+β) The simulator works as follows:
Lemma 6 The above construction of AKGS=(Garble, Eval) is secure. Moreover, it is special piecewise secure as per Definition 8.
In this section, we first describe a private-key one-slot FE scheme for the attribute-weighted sum functionality that is proven simulation secure against a single ciphertext query and a single secret key query either before or after the ciphertext query. This scheme would be crucially embedded into the hidden slots for our full-fledged public-key one-slot FE scheme for attribute-weighted sums presented in the next section. We describe the construction for any fixed value of the security parameter A and suppress the appearance of λ for simplicity of notations. Let Garble, Eval) be a special piecewise secure AKGS for a function class , G=, , , g1, g2, e) a tuple of pairing groups of prime order p, and (SK-IPFE.Setup.SK-IPFE.KeyGen, SK-IPFE.Enc, SK-IPFE.Dec) a secret-key function-hiding SK-IPFE based on G.
Setup(1n, 1n′) Define the index sets as follows
It generates IPFE.MSK←SK-IPFE.Setup(S1-FE) and ←SK-IPFE.Setup(S1-FE). Finally, it returns MSK=(IPFE.MSK, ).
KeyGen(MSK, ƒ) Let ƒ∈ be a function such that ƒ=(ƒ1, . . . , ƒn):×→ where ƒ1, . . . , ƒn′:→ are ABPs of size (m+1). Sample βt← for t∈[n′] such that Σt∈[n′]βt=0 mod p. Next, sample independent random vectors rt← for garbling and compute the coefficient vectors
for all t∈[n′]. Here we make use of the instantiation of the AKGS described herein. From the description of that AKGS instantiation, we note that the (m+1)-th label function would be of the form =z[t]−rt[m]. Also all the label functions , . . . , involve only the variables x and not the variable z[t]. Next, for all j∈[m] and t∈[n′], it defines the vectors vj,t corresponding to the label functions obtained from the partial garbling:
[const]
[coefi]
It generates the secret-keys as
It returns the secret-key as SKƒ=({IPFE.SKj,t}j∈[m],t∈[n′], {}t∈[n′]).
Enc(MSK, x∈, z∈) It sets the vectors
for all t∈[n′]. It encrypts the vectors as
and returns the ciphertext as CT=(IPFE.CT, {}t∈[n′]).
Dec SKƒ, ƒ), (CT, x)) It parses the secret-key SKƒ=({IPFE.SKj,t}j∈[m],t∈[n′], {}t∈[n′]) and the ciphertext CT=(IPFE.CT, {}t∈[n′]). It uses the decryption algorithm of SK-IPFE to compute
Next, it utilizes the evaluation procedure of AKGS and obtain a combined value
Finally, it returns a value ρ by solving a discrete logarithm problem. We assume that the desired attribute-weighted sum lies within a specified polynomial-sized domain so that discrete logarithm can be solved via brute force.
Correctness By the correctness of IPFE, we have SK-IPFE.Dec(IPFE.SKj,t, IPFE.CT)==Lj,t(x) for all j∈[m], t∈[n′] and SK-IPFE.Dec(, )==z[t]−rt[m] for all t∈[n′]. Next, using the correctness of AKGS and the linearity of the Eval function, we have
Therefore, we get by multiplying
where the last equality holds since Σt∈[n′]βt=0 mod p.
In this section we present our public-key one-slot FE scheme Πone for the attribute-weighted sum functionality that is proven adaptively simulation secure against a single ciphertext query and an arbitrary polynomial number of secret key queries both before and after the ciphertext query. As outlined in Remark 3 below, this scheme can naturally be extended to one supporting a bounded number of ciphertext queries. We describe the construction for any fixed value of the security parameter A and suppress the appearance of λ for simplicity of notations. Let (Garble, Eval) be a special piecewise secure AKGS for a function class , G=(, , , g1, g2, e) a tuple of pairing groups of prime order p such that MDDHk holds in , and (IPFE.Setup.IPFE.KeyGen, IPFE.Enc, IPFE.Dec) a slotted IPFE based on G. We construct an FE scheme for attribute-weighted sums with the message space =×.
Setup(1n, 1n′) Define the following index sets as follows
It generates (IPFE.MSK, IPFE.MPK)←IPFE.Setup(Spub, Spriv) and (, ) ← IPFE.Setup(Ŝpub, Spriv). Finally, it returns MSK=(IPFE.MSK, ) and MPK=(IPFE.MPK,
).
KeyGen(MSK, ƒ) Let ƒ=(ƒ1, . . . , ƒn′)∈. Sample α,βt← for t∈[n′] such that
Next, sample independent random vectors rt(ι)← and computes
for all ι∈[k], t∈[n′]. Here we make use of the instantiation of the AKGS described herein. From the description of that AKGS instantiation, we note that the (m+1)-th label function would be of the form =α[ι]z[t]−rt(ι)[m] where α[ι] is a constant. Also all the label functions , . . . , involve only the variables x and not the variable z[t]. Next, for all j∈[m] and t∈[n′], it defines the vectors vj,t corresponding to the label functions obtained from the partial garbling above as
[const]
[coefi]
(ι)
(ι)
It generates the secret-keys as
It returns SKƒ=(IPFE.SK, {IPFE.SKj,t}j∈[m],t∈[n′], {}t∈[n′]).
Enc(MPK, x∈, z∈) It samples s← and set the vectors
for all t∈[n′]. It encrypts the vectors as
and returns the ciphertext as CT=(IPFE.CT, {}t∈[n′]).
Dec((SKƒ, ƒ), (CT, x)) It parses the secret-key SKƒ=(IPFE.MSK, {IPFE.MSKj,t}j∈[m],t∈[n′], {}t∈[n′]) and the ciphertext CT=(IPFE.CT, {}t∈[n′]). It uses the decryption algorithm of IPFE to compute
Next, it utilizes the evaluation procedure of AKGS and obtain a combined value
Finally, it returns a value ζ from a polynomially bounded set such that =T·; otherwise ⊥.
Correctness By the correctness of IPFE, AKGS and the linearity of the Eval function we have
Therefore, =Σt=1n′α·s·ƒt(x)z[t]+βt·s=α·sƒ(x)Tz since Σt∈[n′]βt[ι]=0 mod p for all ι∈[k]. Also, by the correctness of IPFE we see that = and hence =ƒ(x)Tz∈.
Remark 3 (Multi-Ciphertext Scheme) The one-slot FE scheme Πone described above is secure against adversaries that are restricted to query a single ciphertext. However, we can easily modify the FE scheme to another FE that is secure for any a-priori bounded number of ciphertext queries from the adversary's end. For the extension, we introduce additional (2n′+2)qCT private slots on each ciphertext and decryption key sides, where qCT denotes the number of ciphertext queries. More specifically, we add 2n′qCT and 2qCT dimensional hidden slots to Spriv and Ŝpriv respectively to handle the qCT ciphertext queries during the security reduction. Consequently, the sizes of system parameters, secret-keys and ciphertext would grow linearly with qCT. A similar strategy can be followed to convert our extended one-slot FE scheme (described herein) that only supports a single ciphertext query to one that is secure for any a-priori bounded number of ciphertext queries.
In this section, we present a private-key one-slot FE scheme for an extended attribute-weighted sum functionality that is proven simulation secure against a single ciphertext query and a single secret key query either before or after the ciphertext query. This scheme will be embedded into the hidden subspaces of the public-key multi-key FE scheme for the same functionality presented in the next section in its security proof. We describe the construction for any fixed value of the security parameter λ and suppress the appearance of λ for simplicity of notations. Let (Garble, Eva) be a special piecewise secure AKGS for a function class , G=(, , , g1, g2, e) a tuple of pairing groups of prime order p, and (IPFE.Setup, IPFE.KeyGen, IPFE.Enc, IPFE.Dec) a secret-key function-hiding SK-IPFE based on G.
Setup(1λ, 1n, 1n′) Define the following index sets as follows
S
1-extFE={const,{coefi}i∈[n],{extndκ}κ∈[k],query,{simτ,simτ*}τ∈[n′]},
Ŝ
1-extFE={,,}
It generates two IPFE master secret-keys IPFE.MSK←SK-IPFE.Setup(S1-extFE) and ←SK-IPFE.Setup(Ŝ1-extFE). Finally, it returns MSK=(IPFE.MSK, ).
KeyGen(MSK, (ƒ,y)) Let ƒ=(ƒ1, . . . , ƒn′)∈ and y∈. Samples integers νt, βt← for t∈[n′] such that
Next, samples independent random vectors rt← for garbling and computes the coefficient vectors
for each t∈[n′]. Here we make use of the instantiation of the AKGS described in Section. From the description of that AKGS instantiation, we note that the (m+1)-th label function would be of the form =z[t]−rt[m]. Also all the label functions , . . . , involve only the variables x and not the variable z[t]. Next, for all j∈[m] and t∈[n′], it defines the vectors vj,t corresponding to the label functions obtained from the partial garbling above and the vector y as
It also sets the vectors vm+1,t for t∈[n′] corresponding to the (m+1)-th label function as
Now, it uses the key generation algorithm of IPFE to generate the secret-keys
IPFE.SKj,t←SK-IPFE.KeyGen(IPFE.MSK,) for j∈[m],t∈[n′]
←SK-IPFE.KeyGen(,) for t∈[n′]
It returns the secret-key as SKƒ,y=({IPFE.SKj,t}j∈[m],t∈[n′]), {}t∈[n′]).
Remark. We note that the key-generation process can be performed if the vector y is not given in the clear but 2∈ is known. This is because while running the IPFE.KeyGen algorithm above, the vectors vj,t are not inputted in the clear but in the exponent of the group . This fact will be used in the security analysis of our unbounded FE scheme.
Enc(MSK, (x, z∥w)∈X ×) It sets the following vectors:
for all t∈[n′]. Then, it encrypts the vectors using IPFE and obtain the ciphertexts
IPFE.CT←SK-IPFE.Enc(IPFE.MSK,1)
←SK-IPFE.Enc(,1) for t∈[n′]
Finally, it returns the ciphertext as CTx,z∥w=(IPFE.CT, {}t∈[n′]).
Dec((SKƒ,y, ƒ), (CTx,z∥w, x)) It parses SKƒ,y=({IPFE.SKj,t}j∈[m],t∈[n′], {}t∈[n′]) and CTx,z∥w=(IPFE.CT, {}t∈[n′]). It uses the decryption algorithm of SK-IPFE to compute
←SK-IPFE.Dec(IPFE.SK1,t,IPFE.CT) for t∈[n′]
←SK-IPFE.Dec(IPFE.SKj,t,IPFE.CT) for j∈[2,m],t∈[n′]
←SK-IPFE.Dec(,) for t∈[n′]
where ψt=νt·yTw. Next, it utilizes the evaluation procedure of AKGS and returns the combined value
Correctness From the correctness of IPFE, we have SK-IPFE.Dec(IPFE.SK1,t, IPFE.CT)=+T where ψt=νt·yTw. Next, using the correctness of IPFE and AKGS evaluation, we get
The first equality follows from the linearity of Eval function. Now, multiplying all the evaluated values we have
The last equality is obtained from the fact that Σt∈[n′]νt=1 and Σt∈[n′]βt=0.
In this section, we present a public-key one-slot FE scheme ΠextOnebdd for an extended attribute-weighted sum functionality. This scheme is proven adaptively simulation secure against one ciphertext query, an a priori bounded number of pre-ciphertext secret key queries, and an arbitrary polynomial number of post-ciphertext secret key queries. We will apply a bootstrapping compiler onto this FE scheme to obtain our unbounded-slot FE scheme for attribute-weighted sums in the next section. We describe the construction for any fixed value of the security parameter λ and suppress the appearance of λ for simplicity of notations. Let (Garble, Eval) be a special piecewise secure AKGS for a function class , G=((, , , g1, g2, e) a tuple of pairing groups of prime order p such that MDDHk holds in , and (IPFE.Setup.IPFE.KeyGen, IPFE.Enc, IPFE.Dec) a slotted IPFE based on G. We construct an FE scheme for attribute-weighted sums with the message space =×.
Setup(1λ, 1n, 1n′, 1B) Defines the following index sets as follows
S
pub={{const(ι)}ι∈[k],{coefi(ι)}ι∈[k],i∈[n],{extndκ(ι)}ι,κ∈[k]},Ŝpub={,}ι∈[k]
S
priv={const,{coefi}i∈[n],{extndκ,1,extndκ,2,extndκ}κ∈[k],{queryη}η∈[B],{simτ,simτ*}τ∈[n′]},
{circumflex over (S)}priv={,,,,,,}
where B denotes a bound on the number of pre-challenge queries. It generates two pair of IPFE keys (IPFE.MSK, IPFE.MPK)←IPFE.Setup(Spub, Spriv) and (, )←IPFE.Setup(Ŝpub, Ŝpriv). Finally, it returns the master secret-key of the system as MSK=(IPFE.MSK,
) and master public-key as MPK=(IPFE.MPK, ).
KeyGen(MSK, (ƒ,y)) Let ƒ=(ƒ1, . . . , ƒn′)∈ and y∈. It samples integers νt← and vectors α,βt← for t∈[n′] such that
Next, sample independent random vectors rt(ι)← and computes
for all ι∈[k], t∈[n′]. Here, we make use of the instantiation of the AKGS described in Section. From the description of that AKGS instantiation, we note that the (m+1), th label function would be of the form =α[ι]z[t]−rt(ι)) [m] where α[ι] is a constant. Also all the label functions , . . . , involve only the variables x and not the variable z[t]. Next, for all j∈[2, m] and t∈[n′], it defines the vectors vj,t corresponding to the label functions obtained from the partial garbling above and the vector y as
It generates the secret-keys as
IPFE.SK←IPFE.KeyGen(IPFE.MSK,)
IPFE.SKj,t←IPFE.KeyGen(IPFE.MSK,) for j∈[m],t∈[n′]
←IPFE.KeyGen(,) for t∈[n′]
Finally, it returns the secret-key as SKƒ,y=(IPFE.SK, {IPFE.SKj,t}j∈[m],t∈[n′], {}t∈[n′]) and (ƒ,y).
Remark 4 We note that the vector y is only used to set v1,t[extndκ(ι)] and the IPFE.KeyGen only requires 2∈ to compute the secret-key IPFE.SK1,t. Therefore the key generation process can compute the same secret-key SKƒ,y if (ƒ, ) is supplied as input instead of (ƒ,y) and we express this by writing KeyGen(MSK, (ƒ, ))=Key-Gen(MSK, (ƒ,y)). This fact will be crucial while describing the unbounded slot FE.
Enc(MPK, (x, z∥w)∈×) It samples a random vector s← and sets the vectors
for all t∈[n′]. It encrypts the vectors as
IPFE.CT←IPFE.SlotEnc(IPFE.MPK,)
←IPFE.SlotEnc(,) for t∈[n′]
and returns the ciphertext as CT=(IPFE.CT, {}t∈[n′]) and x.
Dec((SKƒ,y, ƒ), (CT, x)) It parses the secret-key and ciphertext as SKƒ,y=(IPFE.SK, {IPFE.SKj,t}j∈[m],t∈[n′], {}t∈[n′]) and CTx,z=(IPFE.CT, {}t∈[n′]). It uses the decryption algorithm of IPFE to compute
←IPFE.Dec(IPFE.SK,IPFE.CT)
+←IPFE.Dec(IPFE.SK1,t,IPFE.CT)
←IPFE.Dec(IPFE.SKj,t,IPFE.CT) for j∈[2,m],t∈[n′]
←IPFE.Dec(,) for t∈[n′]
where ψt=Σι=1kα[ι]s[ι]·νt·yTw=α·s·νt·yTw. Next, it utilizes the evaluation procedure of AKGS and obtain a combined value
Finally, it returns a value =·∈.
Correctness First, the IPFE correctness implies IPFE.Dec(IPFE.SK1,t, IPFE.CT)=+ where ψt=Σι=1kα[ι]s[ι]·νt·yTw=α·s·νt·yTw. Next, by the correctness of IPFE, AKGS we have
The first equality follows from the linearity of Eval algorithm. Therefore, multiplying all the evaluated values we have
where the last equality follows from the fact that Σt∈n′νt=1 mod p and Σt∈[n′]βt[ι]=0 mod p for all ι∈[k]. Also, by the correctness of IPFE we see that = and hence =.
Theorem 2 The extended one slot FE scheme ΠextOnebdd for attribute-weighted sum is adaptively simulation-secure assuming the AKGS is piecewise-secure as per Definition 7, the MDDHk assumption holds in group , and the slotted IPFE is function hiding as per Definition 5.
In this section, we present a private-key one-slot FE scheme for an extended attribute-weighted sum functionality that is proven simulation secure against a single ciphertext query and a single secret key query either before or after the ciphertext query. This scheme will be embedded into the hidden subspaces of the public-key multi-key FE scheme for the same functionality presented in the next section in its security proof. We describe the construction for any fixed value of the security parameter A and suppress the appearance of λ for simplicity of notations. Let (Garble, Eval) be special piecewise secure AKGS for a function class , G=(, , , , g2, e) a tuple of pairing groups of prime order p, and (IPFE.Setup, IPFE.KeyGen, IPFE.Enc, IPFE.Dec) a secret-key function-hiding SK-IPFE based on G.
Setup(1λ, 1n, 1n′) Define the following index sets as follows
S
1-extFE={const,{coefi}i∈[n],{extndκ}κ∈[k],{simτ,simτ*}τ∈[n′]},
{circumflex over (S)}1-extFE={,,}
It generates two IPFE master secret-keys IPFE.MSK←SK-IPFE.Setup(S1-extFE) and ←SK-IPFE.Setup(Ŝ1-extFE). Finally, it returns MSK=(IPFE.MSK, ).
KeyGen(MSK, (ƒ,y)) Let ƒ=(ƒ1, . . . , ƒn′)∈ and y∈. Samples integers νt,βt← for t∈[n′] such that
Next, samples independent random vectors rt← for garbling and computes the coefficient vectors
for each t∈[n′]. Here we make use of the instantiation of the AKGS described in Section. From the description of that AKGS instantiation, we note that the (m+1)-th label function would be of the form =z[t]−rt[m]. Also all the label functions , . . . , involve only the variables x and not the variable z[t]. Next, for all j∈[m] and t∈[n′], it defines the vectors vj,t corresponding to the label functions obtained from the partial garbling above and the vector y as
It also sets the vectors vm+1,t for t∈[n′] corresponding to the (m+1)-th label function as
Now, it uses the key generation algorithm of IPFE to generate the secret-keys
IPFE.SKj,t←SK-IPFE.KeyGen(IPFE.MSK,) for j∈[m],t∈[n′]
←SK-IPFE.KeyGen(,) for t∈[n′]
It returns the secret-key as SKƒ,y=({IPFE.SKj,t}j∈[m],t∈[n′]), {}t∈[n′]).
Enc(MSK, (x, z∥w)∈×) It sets the following vectors:
for all t∈[n′]. Then, it encrypts the vectors using IPFE and obtain the ciphertexts
IPFE.CT←SK-IPFE.Enc(IPFE.MSK,1)
←SK-IPFE.Enc(,1) for t∈[n′]
Finally, it returns the ciphertext as CTx,z∥w=(IPFE.CT, {}t∈[n′]).
Dec((SKƒ,y, ƒ), (CTx,z∥w, x)) It parses SKƒ,y=({IPFE.SKj,t}j∈[m],t∈[n′], {}t∈[n′]) and CTx,z∥w=(IPFE.CT, {). It uses the decryption algorithm of SK-IPFE to compute
←SK-IPFE.Dec(IPFE.SK1,t,IPFE.CT) for t∈[n′]
←SK-IPFE.Dec(IPFE.SKj,t,IPFE.CT) for j∈[2,m],t∈[n′]
←SK-IPFE.Dec(,) for t∈[n′]
where ψt=νt·yTw. Next, it utilizes the evaluation procedure of AKGS and returns the combined value
Correctness From the correctness of IPFE, we have SK-IPFE.Dec(IPFE.SK1,t, IPFE.CT)= where ψt=νt·yTw. Next, using the correctness of IPFE and AKGS evaluation, we get
The first equality follows from the linearity of Eval function. Now, multiplying all the evaluated values we have
The last equality is obtained from the fact that Σt∈[n′]νt=1 and Σt∈[n′]βt=0.
In this section, we present a public-key one-slot FE scheme ΠextOneubd for an extended attribute-weighted sum functionality. This scheme is proven adaptively simulation secure against one ciphertext query and an arbitrary polynomial number of secret key queries both before and after the ciphertext query. We describe the construction for any fixed value of the security parameter λ and suppress the appearance of λ for simplicity of notations. Let (Garble, Eval be a special piecewise secure AKGS for a function class , G=(, , , g1, g2, e) a tuple of pairing groups of prime order p such that MDDHk holds in , and (IPFE.Setup.IPFE.KeyGen, IPFE.Enc, IPFE.Dec) a slotted IPFE based on G. We construct an FE scheme for attribute-weighted sums with the message space =×.
Setup(1λ, 1n, 1n′) Defines the following index sets as follows
S
pub={{const(ι)}ι∈[k],{coefi(ι)}ι∈[k],i∈[n],{extndκ(ι)}ι,κ∈[k]},{circumflex over (S)}pub={,}ι∈[k]
S
priv={const,{coefi}i∈[n],{extndκ,1,extndκ,2,extndκ}κ∈[k],{simτ,simτ*}τ∈[n′]},
{circumflex over (S)}priv={,,,,,,}
It generates two pair of IPFE keys (IPFE.MSK, IPFE.MPK)←IPFE.Setup(Spub, Spriv) and (, )←IPFE.Setup(Ŝpub, Ŝpriv). Finally, it returns the master secret-key as MSK=(IPFE.MSK, ) and master public-key as MPK=(IPFE.MPK, ).
KeyGen(MSK, (ƒ,y)) Let ƒ=(ƒ1, . . . , ƒn′)∈ and y∈. It samples integers νt←, and vectors α,βt← for t∈[n′] such that
Next, sample independent random vectors rt(ι)← and computes
for all ι∈[k], t∈[n′]. Here, we make use of the instantiation of the AKGS described in Section. From the description of that AKGS instantiation, we note that the (m+1)-th label function would be of the form =α[ι]z[t]−rt(ι)[m] where α[ι] is a constant. Also all the label functions , . . . , involve only the variables x and not the variable z[t]. Next, for all j∈[2, m] and t∈[n′], it defines the vectors vj,t corresponding to the label functions obtained from the partial garbling above and the vector y as
It generates the secret-keys as
IPFE.SK←IPFE.KeyGen(IPFE.MSK,)
IPFE.SKj,t←IPFE.KeyGen(IPFE.MSK,) for j∈[m],t∈[n′]
←IPFE.KeyGen(,) for t∈[n′]
Finally, it returns SKƒ,y=(IPFE.SK, {IPFE.SKj,t}j∈[m],t∈[n′], {}t∈[n′]) and (ƒ,y).
Enc(MPK, (x, z∥w)∈×) It samples a random vector s← and sets the vectors
for all t∈[n′]. It encrypts the vectors as
IPFE.CT←IPFE.SlotEnc(IPFE.MPK,)
←IPFE.SlotEnc(,) for t∈[n′]
and returns the ciphertext as CT=(IPFE.CT, {}t∈[n′]) and x.
Dec((SKƒ,y, ƒ), (CT, x)) It parses the secret-key as SKƒ=(IPFE.SK, {IPFE.SKj,t}j∈[m],t∈[n′], {}t∈[n′]) and the ciphertext as CTx,z=(IPFE.CT, {). It uses the decryption algorithm of IPFE to compute
←IPFE.Dec(IPFE.SK,IPFE.CT)
←IPFE.Dec(IPFE.SK1,t,IPFE.CT)
←IPFE.Dec(IPFE.SKj,t,IPFE.CT) for j∈[2,m],t∈[n′]
←IPFE.Dec(,) for t∈[n′]
where ψt=Σι=1kα[ι]s[ι]·νt·yTw=α·s·νt·yTw. Next, it utilizes the evaluation procedure of AKGS and obtain a combined value
Finally, it returns a value =·∈.
Correctness First, the IPFE correctness implies IPFE.Dec(IPFE.SK1,t, IPFE.CT)=+ where ψt=Σι=1kα[ι]s[ι]·νt·yTw=α·s·νt·yTw. Next, by the correctness of IPFE, AKGS we have
The first equality follows from the linearity of Eval algorithm. Therefore, multiplying all the evaluated values we have
where the last equality follows from the fact that Σt∈n′νt=1 and Σt∈[n′]βt[ι]=0 for all ι∈[k]. Also, by the correctness of IPFE we see that T= and hence =.
As illustrated in
The setup device 10 can be a computer or a computer system configured to execute the setup algorithm Setup. The setup device 10 includes a setup processing unit 101 and a storage unit 102. The setup processing unit 101 executes the setup algorithm Setup as described herein. In the setup algorithm Setup, a functional encryption setup algorithm executes twice to generate and output a set of master public-secret key pairs FE.MSK and FE.MPK and a set of master public-secret key pairs and . The first set can be for encrypting a public part of attributes and the second set can be for use in encrypting a private part of the attributes. In the storage unit 102, various types of information used in the setup algorithm Setup, an output result of the setup algorithm Setup, and the like are stored.
Note that the setup processing unit 101 can be implemented by the processing of executing, by an arithmetic device such as a processor, one or more programs installed in the setup device 10, for example. The storage unit 102 can be implemented using various memories (e.g., a main storage device and an auxiliary storage device).
The encryption device 20 can be a computer or a computer system configured to execute the encryption algorithm Enc. The encryption device 20 includes an encryption processing unit 201 and a storage unit 202. The encryption processing unit 201 executes the encryption algorithm Enc by using, as input, the master public key MPK as FE.MPK and one or more public attributes x, and one or more private attributes z. In the encryption algorithm Enc, a ciphertext CT as FE.CT and , is generated and output. The storage unit 202 stores various types of information used in the encryption algorithm Enc, an output result (e.g., the ciphertext) of the encryption algorithm Enc, and the like are stored.
Note that the encryption processing unit 201 can be implemented by the processing of executing, by an arithmetic device such as a processor, one or more programs installed in the encryption device 20, for example. The storage unit 202 can be implemented using various memories (e.g., a main storage device and an auxiliary storage device).
The key generation device 30 is a computer or a computer system configured to execute the key generation algorithm KeyGen. The key generation device 30 can include a key generation processing unit 301 and a storage unit 302. The key generation processing unit 301 executes the key generation algorithm KeyGen by receiving the master secret key MSK as FE.MSK and and a function ƒ where ƒ consists of sub-functions ƒt, wherein t represents an integer index. In the key generation algorithm KeyGen, the secret key SKƒ as FE.SK, {FE.SKj,t}, and ƒ are generated and output. In the storage unit 302, various types of information used in the key generation algorithm KeyGen, an output result of the key generation algorithm KeyGen, and the like are stored.
Note that the key generation processing unit 301 is implemented by the processing of executing, by an arithmetic device such as a processor, one or more programs installed in the key generation device 30, for example. The storage unit 302 can be implemented using various memories (e.g., a main storage device and an auxiliary storage device).
The decryption device 40 can be a computer or a computer system configured to execute the decryption algorithm Dec. The decryption device 40 includes a decryption processing unit 401 and a storage unit 402. The decryption processing unit 401 executes the decryption algorithm Dec by using, as input, the function ƒ and the secret key SKƒ for function ƒ. In the decryption algorithm Dec, the functional value μ is recovered from ρ and d, and generates and outputs the value μ as the plaintext. In the storage unit 402, various types of information used in the decryption algorithm Dec, an output result of the decryption algorithm Dec, and the like are stored.
Note that the decryption processing unit 401 is implemented by the processing of executing, by an arithmetic device such as a processor, one or more programs installed in the decryption device 40, for example. The storage unit 402 can be implemented using various memories (e.g., a main storage device and an auxiliary storage device).
The configuration of the encryption system 100 illustrated in
With reference to
As illustrated, data owner 205 uploads ciphertext C onto the remote server 210. Data user 215 requests TA 220 for a token for a function F. TA 220 issues token TF to the data user. Data user then sends TF to the server. Server runs F on the encrypted data, and forwards the result RF to the data user.
Computer system 500 may include one or more processors (also called central processing units, processing devices, or CPUs), such as a processor 504. Processor 504 may be connected to a communication infrastructure 506 (e.g., such as a bus).
Computer system 500 may also include user input/output device(s) 503, such as monitors, keyboards, pointing devices, etc., which may communicate with communication infrastructure 506 through user input/output interface(s) 502. One or more of processors 504 may be a graphics processing unit (GPU). In an embodiment, a GPU may be a processor that is a specialized electronic circuit designed to process mathematically intensive applications. The GPU may have a parallel structure that is efficient for parallel processing of large blocks of data, such as mathematically intensive data common to computer graphics applications, images, videos, etc.
Computer system 500 may also include a main memory 508, such as random-access memory (RAM). Main memory 508 may include one or more levels of cache. Main memory 508 may have stored therein control logic (i.e., computer software, instructions, etc.) and/or data. Computer system 500 may also include one or more secondary storage devices or secondary memory 510. Secondary memory 510 may include, for example, a hard disk drive 512 and/or a removable storage device or removable storage drive 514. Removable storage drive 514 may interact with a removable storage unit 518. Removable storage unit 518 may include a computer-usable or readable storage device having stored thereon computer software (control logic) and/or data. Removable storage drive 514 may read from and/or write to removable storage unit 518.
Secondary memory 510 may include other means, devices, components, instrumentalities, or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system 500. Such means, devices, components, instrumentalities, or other approaches may include, for example, a removable storage unit 522 and an interface 520. Examples of the removable storage unit 522 and the interface 520 may include a program cartridge and cartridge interface, a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface.
Computer system 500 may further include communications interface 524 (e.g., network interface). Communications interface 524 may enable computer system 500 to communicate and interact with any combination of external devices, external networks, external entities, etc. (individually and collectively referenced as remote device(s), network(s), entity(ies) 528). For example, communications interface 524 may allow computer system 500 to communicate with external or remote device(s), network(s), entity(ies) 528 over communications path 526, which may be wired and/or wireless (or a combination thereof), and which may include any combination of LANs, WANs, the Internet, etc. Control logic and/or data may be transmitted to and from computer system 500 via communications path 526.
Computer system 500 may also be any of a personal digital assistant (PDA), desktop workstation, laptop or notebook computer, netbook, tablet, smartphone, smartwatch or other wearable devices, appliance, part of the Internet-of-Things, and/or embedded system, to name a few non-limiting examples, or any combination thereof.
Computer system 500 may be a client or server computing device, accessing or hosting any applications and/or data through any delivery paradigm, including but not limited to remote or distributed cloud computing solutions; local or on-premises software (“onpremise”cloud-based solutions); “as a service” models (e.g., content as a service (CaaS), digital content as a service (DCaaS), software as a service (SaaS), managed software as a service (MSaaS), platform as a service (PaaS), desktop as a service (DaaS), framework as a service (FaaS), backend as a service (BaaS), mobile backend as a service (MBaaS), infrastructure as a service (IaaS), etc.); and/or a hybrid model including any combination of the foregoing examples or other services or delivery paradigms.
The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, a switch or bridge, a specialized application or network security appliance or device, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The example computer system 900 includes a processing device 902, a main memory 904 (e.g., read-only memory (ROM), flash memory, dynamic random-access memory (DRAM) such as synchronous DRAM (SDRAM), etc.), a static memory 906 (e.g., flash memory, static random-access memory (SRAM), etc.), and a data storage device 918, which communicate with each other via a bus 930.
Processing device 902 represents one or more processing devices such as a microprocessor, a central processing unit, or the like. More particularly, the processing device may be complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 902 may also be one or more special-purpose processing devices such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 902 is configured to execute instructions 926 for performing the operations and steps discussed herein.
The computer system 900 may further include a network interface device 908 to communicate over the network 920. The computer system 900 also may include a video display unit 910, an alphanumeric input device 912 (e.g., a keyboard), a cursor control device 914 (e.g., a mouse), a graphics processing unit 922, a signal generation device 916 (e.g., a speaker), graphics processing unit 922, video processing unit 928, and audio processing unit 932.
The data storage device 918 may include a machine-readable medium 924 (also known as a computer-readable storage medium) on which is stored one or more sets of instructions 926 (e.g., software instructions) embodying any one or more of the operations described herein. The instructions 926 may also reside, completely or at least partially, within the main memory 904 and/or within the processing device 902 during execution thereof by the computer system 900, where the main memory 904 and the processing device 902 also constitute machine-readable storage media.
In an example, the instructions 926 include instructions to implement operations and functionality corresponding to the disclosed subject matter. While the machine-readable storage medium 924 is shown in an example implementation to be a single medium, the term “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions 926. The term “machine-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions 926 for execution by the machine and that cause the machine to perform any one or more of the operations of the present disclosure. The term “machine-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.
Some portions of the detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “identifying” or “determining” or “executing” or “performing” or “collecting” or “creating” or “sending” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage devices.
The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the intended purposes, or it may comprise a computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer-readable storage medium, such as but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
The operations and illustrations presented herein are not inherently related to any particular computer or other apparatus. Various types of systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the operations. The structure for a variety of these systems will appear as set forth in the description herein. In addition, the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the disclosure as described herein.
The present disclosure may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). For example, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as read-only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, etc.
In some embodiments, a tangible, non-transitory apparatus or article of manufacture comprising a tangible, non-transitory computer useable or readable medium having control logic (software) stored thereon may also be referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system 500, main memory 508, secondary memory 510, and removable storage units 518 and 522, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system 500), may cause such data processing devices to operate as described herein.
Based on the teachings contained in this disclosure, it will be apparent to persons skilled in the relevant art(s) how to make and use embodiments of this disclosure using data processing devices, computer systems, and/or computer architectures other than that shown in
It is to be appreciated that the Detailed Description section, and not any other section, is intended to be used to interpret the claims. Other sections can set forth one or more but not all exemplary embodiments as contemplated by the inventor(s), and thus, are not intended to limit this disclosure or the appended claims in any way.
While this disclosure describes exemplary embodiments for exemplary fields and applications, it should be understood that the disclosure is not limited thereto. Other embodiments and modifications thereto are possible and are within the scope and spirit of this disclosure. For example, and without limiting the generality of this paragraph, embodiments are not limited to the software, hardware, firmware, and/or entities illustrated in the figures described herein. Further, embodiments (whether or not explicitly described herein) have significant utility to fields and applications beyond the examples described herein.
Embodiments have been described herein with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined as long as the specified functions and relationships (or equivalents thereof) are appropriately performed. Also, alternative embodiments can perform functional blocks, steps, operations, methods, etc. using orderings different than those described herein.
References herein to “one embodiment,” “an embodiment,” “an example embodiment,” or similar phrases, indicate that the embodiment described can include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of persons skilled in the relevant art(s) to incorporate such feature, structure, or characteristic into other embodiments whether or not explicitly mentioned or described herein. Additionally, some embodiments can be described using the expression “coupled” and “connected” along with their derivatives. These terms are not necessarily intended as synonyms for each other. For example, some embodiments can be described using the terms “connected” and/or “coupled” to indicate that two or more elements are in direct physical or electrical contact with each other. The term “coupled,” however, can also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
The breadth and scope of this disclosure should not be limited by any of the abovedescribed exemplary embodiments but should be defined only in accordance with the following claims and their equivalents. In the foregoing specification, implementations of the disclosure have been described with reference to specific example implementations thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of implementations of the disclosure as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US22/39569 | 8/5/2022 | WO |
Number | Date | Country | |
---|---|---|---|
63230065 | Aug 2021 | US |