WO2023014969A1 - Compact Adaptively Secure Functional Encryption For Attribute-Weighted Sums - Google Patents

Compact Adaptively Secure Functional Encryption For Attribute-Weighted Sums Download PDF

Info

Publication number
WO2023014969A1
WO2023014969A1 PCT/US2022/039569 US2022039569W WO2023014969A1 WO 2023014969 A1 WO2023014969 A1 WO 2023014969A1 US 2022039569 W US2022039569 W US 2022039569W WO 2023014969 A1 WO2023014969 A1 WO 2023014969A1
Authority
WO
WIPO (PCT)
Prior art keywords
secret key
msk
mpk
values
key
Prior art date
Application number
PCT/US2022/039569
Other languages
French (fr)
Inventor
Pratish DATTA
Tapas Pal
Original Assignee
Ntt Research, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ntt Research, Inc. filed Critical Ntt Research, Inc.
Publication of WO2023014969A1 publication Critical patent/WO2023014969A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Definitions

  • 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.
  • a public-key FE scheme for a function class F there is a setup authority which produces a master secret key and pub- lishes a master public key.
  • the setup authority can derive secret keys or functional decryption keys SK f associated to functions f ⁇ F .
  • anyone can encrypt messages msg belonging to a specified message space msg ⁇ M using the master public key to produce a ciphertext CT.
  • the ciphertext CT along with a secret key SK f recovers the function of the message f(msg) at the time of decryption, while unable to extract any other information about msg.
  • 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).
  • x i is a public attribute (e.g., demographic data)
  • z i is a private attribute containing sensitive information (e.g., salary, medical condition, loans, college admission outcomes).
  • a recipient having a secret key corre- sponding to a weight function f can learn the attribute-weighted sum of the database, i.e., The attribute-weighted sum functionality appears naturally in several real life applications.
  • the attribute-weighted sum functionality would correspond to the average z i over all users whose attribute x i satisfies the predicate f .
  • z i is boolean
  • prior work considered the notion of unbounded-slot FE scheme for attribute-weighted sum.
  • unbounded-slot FE the same system parameters and secret keys can be reused for different databases with variable lengths, which saves storage space and reduces communication cost signifi- cantly.
  • the unbounded-slot FE work supports expressive function class of arithmetic branch- ing programs (ABPs) which is capable of capturing boolean formulas, boolean span pro- grams, combinatorial computations, and arithmetic span programs.
  • ABSPs arithmetic branch- ing 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. More- over, 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.
  • one significant limitation of the FE scheme of prior work is that the scheme only achieves semi-adaptive security.
  • the computer-implemented method, computing device, and computer-readable storage media can comprise: execut- ing a computerized setup algorithm, the setup algorithm comprising: executing a func- tional 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 mas- ter secret key MSK as FE.MSK and from the setup storage unit and a function f where f comprises sub-functions f 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 r t for input for a garbling
  • 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 h t comprising of s and z, and computing FE ciphertext F ⁇ E.CT t for the value h t ; and outputting the ciphertext CT as FE.CT and and storing the output in an electronic encryption device storage unit.
  • decryption comprising: receiving the function f and the secret key SK f for function f ; receiving one or more public attributes x and a ciphertext CT for x; retrieving FE.SK, FE.SK j,t , from SK f and retrieving FE.CT and from CT; retrieving sub-func tions f t from the function f ; 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.SK j,t and get a value l j,t ; decrypting by running the decryption algorithm of FE using the secret key and get a value l t ; running the evaluation algorithm of the garbling scheme using the values l j,t , l t and the one or more public attributes x and the sub-function f t , and get get get a value
  • 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.
  • Fig. 1 illustrates an example embodiment of the present invention for a functional encryption system that is adaptively secure for attribute-weighted sums.
  • Fig. 2 illustrates an example system architecture for a functional encryption system that is adaptively secure for attribute-weighted sums.
  • Fig. 3 illustrates an example computer system architecture for implementing the claimed systems and methods.
  • Fig. 4 illustrates further details of an example computer system architecture for implementing the claimed systems and methods.
  • DETAILED DESCRIPTION As disclosed herein, we resolve the above open problem. More precisely, we make the following contributions. (a) We start by presenting the first one-slot FE scheme for the attribute-weighted sum functionality with the weight functions represented as ABPs that achieves adap- tive simulation-based security and compact ciphertexts, that is, the ciphertext size is independent of the number of appearances of the attributes within the weight functions.
  • the scheme is secure against an adversary who is allowed to make an a-priori bounded number of ciphertext queries and an unbounded (polynomial) number of secret key queries both before and after the ciphertext queries, which is the best possible level of security one could hope to achieve in adaptive simulation- based framework. Since simulation-based security also implies indistinguishability- based security and indistinguishability-based security against single and multiple ciphertexts are equivalent, the proposed FE scheme is also adaptively secure in the indistinguishability-based model against adversaries making unbounded number of ciphertext and secret key queries in any arbitrary order.
  • the bilateral MDDH assumption is the plain MDDH assumption except that the el- ements are available in the exponents of both source groups of a bilinear group simul- taneously.
  • 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(N 1/3 ) parameter sizes from bilinear maps, where N is the total number of users in the system.
  • our construction is semi-generic and is built upon two cryp- tographic 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).
  • IPFE slotted inner product functional encryption
  • AKGS information theoretic primitive
  • 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).
  • a secret key corresponds to some weight function f , and decryption recovers the weighted sum This is an important functionality with a wide range of potential real l ife applications.
  • attributes are viewed as vectors and weight functions are arithmetic branching programs (ABP).
  • ABSP arithmetic branching programs
  • the pro- posed FE scheme also achieves indistinguishability-based adaptive security against an a-priori unbounded number of ciphertext queries and an arbitrary polynomial number of secret key queries both before and after the ciphertext queries. More- over, the scheme enjoys compact ciphertexts that do not grow with the number of appearances of the attributes within the weight functions.
  • 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.
  • G (G 1 ,G 2 ,G T , g 1 , g 2 , e) be a bilinear group of prime order p and [[a]] i denotes for any a ⁇ Z p and i ⁇ ⁇ 1, 2, T ⁇ , which notation can also be extended in case of vectors and matrices.
  • [[a]] i denotes for any a ⁇ Z p and i ⁇ ⁇ 1, 2, T ⁇ , which notation can also be extended in case of vectors and matrices.
  • the simulator 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 f(x) ⁇ z 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 f after making a ciphertext query, the simulator receives f along with the functional value f(x) ⁇ z for that key and simulates the key based on this information.
  • AKGS arithmetic key garbling scheme
  • the notion is called arithmetic key garbling scheme (AKGS) which garbles a function p p along with two secrets ⁇ , ⁇ ⁇ Z p so that the evaluation with an input gives the value ⁇ f(x) + ⁇ .
  • the evaluation does not reveal any information about ⁇ and ⁇ .
  • the AKGS has the following algorithms: • (l 1 , ... , l m+1 ) ⁇ Garble( ⁇ f(x)+ ⁇ ; r):
  • the garbling algorithm outputs (m+1) affine label functions L 1 , ... , L m+1 , described by their coefficient vectors l 1 , ...
  • the decryption recovers the inner product [[v ⁇ u]] T ⁇ G T 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 slotted IPFE preserves the function-hiding security with respect to the private slots only as anyone can encrypt arbitrary vectors into the public slots.
  • Our One-Slot FE We aim to design our decryption algorithm such that given a secret key for a weight function ABP f with coordinate functions f 1 , ...
  • the decryption algorithm would first recover the value for each coordinate z[t]f t (x) masked with a random scalar ⁇ t , that is, z[t]f 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 mod p).
  • AKGS scalars
  • ⁇ 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 ⁇ f(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 f t by adding a new sink node and connecting the original sink node of f t to this new sink node with a directed edge labeled with the variable z[t].
  • the simulator sets public slots of all the vectors v q ,v q,j,t for j ⁇ ⁇ 1, ... ,m q + 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 fq takes the form where 0 mod p. We write 0 ⁇ as a vector of length ⁇ with all zero elements.
  • IPFE.CT IPFE.Enc(IPFE.MSK, [[0 k ,0 kn ⁇ 1,x ⁇ ,0 n ′ ,0 n ′ ]] 1 )
  • IP ⁇ FE.CT t IPFE.Enc(IPF ⁇ E.MSK, [[0 k ,0 k ⁇ 1, 0, ⁇ 1,d[t], 0, 0, 0]] 1 )
  • N ⁇ R is said to be a negligible function of ⁇ , if for every c ⁇ N there exists a ⁇ c ⁇ N such that for all ⁇ > ⁇ c ,
  • Expt be an interactive security experiment played between a challenger and an adversary, which always outputs a single bit.
  • Expt C A is a function of ⁇ and it is parametrized by an adversary A and a cryptographic protocol C.
  • Expt C A ,0 and Expt C,1 A be two such experiment.
  • the group operations in G i for i ⁇ ⁇ 1, 2, T ⁇ and the map e are efficiently computable in deterministic polynomial time in the security parameter ⁇ .
  • ABSP arithmetic branching program
  • ABP f Z n p ⁇ Z p given by ⁇ ⁇
  • P is the set of all v 0 -v 1 path and e ⁇ P denotes an edge in the path P ⁇ P.
  • the number of vertices.
  • Lemma 1 be an ABP of size m and v 0 , v 2 , ... , v m ⁇ 1 , v 1 be stored topologically.
  • Functional Encryption for Attribute-Weighted Sum We formally present the syntax of FE for attribute-weighted sum and define adaptive simulation security of the primitive.
  • the key generation algorithm takes as input MSK and a function It outputs a secret-key SK f and make f available publicly.
  • the encryption algorithm takes as input MPK and a message (x i , z i ) i ⁇ [N ] ⁇ (Z n p ⁇ Z n′ p ) ⁇ . It outputs a ciphertext CT and make (x i ) i ⁇ [N ] available publicly.
  • the scheme is said to be (Q pre , Q CT , Q post )-adaptively sim ulation secure if for any PPT adversary A making at most Q CT ciphertext queries and Q pre , Q post secret key queries before and after the ci- phertext queries respectively, we have where the experiments are defined as follows.
  • an unbounded-slot FE for attribute-weighted sums is said to be (poly, Q CT , poly)-adaptively simulation secure if it is (Q pre , Q CT , Q post )- adaptively simulation secure as well as Q pre and Q post are unbounded polynomials in the security parameter ⁇ .
  • 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 S pub containing public slots and S priv 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.
  • G (G 1 ,G 2 ,G T , g 1 , g 2 , e) be a tuple of pairing groups of prime order p and k ⁇ 1 an integer constant. If MDDH k holds in both groups G 1 ,G 2 , then there is an adaptively function-hiding secure IPFE scheme based on G.
  • Arithmetic Key Garbling Scheme 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.
  • AKGS Arimetic Key Garbling Scheme
  • the garbling is a randomized algorithm that takes as input a de- scription of the function zf(x) + ⁇ with f ⁇ F and scalars z, ⁇ ⁇ Z p where z,x are treated as variables. It outputs (m+ 1) affine functions L 1 , ...
  • the evaluation is a deterministic algorithm that takes as input a function f ⁇ F , an input vector x ⁇ Z n p and integers l 1 , ... , l m+1 ⁇ Z p which are supposed to be the values of the label functions at (x, z). It outputs a value in Z p .
  • the AKGS is said to be correct if for all f : Z n p ⁇ Z p ⁇ F , z, ⁇ ⁇ Z p and x ⁇ Z n p , we have
  • the scheme have deterministic shape, meaning that m is determined solely by f , inde- pendent of z, ⁇ and the randomness in Garble.
  • the number of label functions, (m + 1), is called the garbling size of f under this scheme.
  • the AKGS is said to be linear if the following conditions hold: • Garble(zf(x) + ⁇ ) uses a uniformly random vector r ⁇ Z m′ p as its randomness, where m ′ is determined solely by f , independent of z, ⁇ . • The coefficient vectors l 1 , ... , l m+1 produced by Garble(zf(x) + ⁇ ) are linear in (z, ⁇ , r). • Eval(f,x, l 1 , ... , l m+1 ) is linear in l 1 , ... , l m+1 . Simulation-Based Security Herein, we consider linear AKGS for our application.
  • AKGS (Garble, Eval) for a function class F is secure if there exists an efficient algorithm SimGarble such that for all f : Z n p ⁇ Z p , z, ⁇ ⁇ Z p and x ⁇ Z n p , 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.
  • L j (x) k j r[j ⁇ 1] + L ′ j(x; z, ⁇ , r[j], r[j + 1], ... , r[m ′ ])
  • k j ⁇ Z p is a non-zero constant (not depending on x, z, ⁇ , r)
  • L ′ j is an affine function of x whose coefficient vector is linear in (z, ⁇ , r[j], r[j+1], ... , r[m ′ ]).
  • the component r[j ⁇ 1] is called the randomizer of L j and l j .
  • AKGS Garble, Eval
  • AKGS Garble, Eval
  • Garble(zf(x) + ⁇ ) It takes input an A of size (m+ 1) and two secrets z, ⁇ ⁇ Z p .
  • the algorithm works as follows: 1. Using Lemma 1, it computes a matrix M ⁇ Z m p ⁇ m such that det(M) is the output of the function f . 2.
  • the last column of the product M ′ N which is the label functions L 1 , ... , L m+1 , are affine in x, z.
  • the output size of Garble is determined solely by the size of f (as an ABP), hence Garble has deterministic shape.
  • Garble is linear in (z, ⁇ , r), i.e., the coefficient vectors l 1 , ... , l m+1 are linear in (z, ⁇ , r). It follows from the fact that M,m 2 are independent of (z, ⁇ , r), and r,m 1 , z are linear in (z, ⁇ , r).
  • Mr + m 1 which defines the label functions L 1 , ... , L m , and m ⁇ 2 r + z, which is the label function L m+1 , are linear in (z, ⁇ , r).
  • SK-IPFE.Setup.SK-IPFE.KeyGen, SK-IPFE.Enc, SK-IPFE.Dec a secret- key function-hiding SK-IPFE based on G. for all t ⁇ [n ′ ].
  • n n ′ Setup(1 , 1 ) Define the following index sets as follows ⁇ ⁇ ⁇ ⁇ KeyGen(MSK, f) Let such that Next, sample independent random vectors and computes (l( ⁇ ) 1 ,t , ... , l( ⁇ ) m ,t , l( ⁇ ) m +1,t ) ⁇ Garble( ⁇ [ ⁇ ]z[t]f t (x) + ⁇ t [ ⁇ ]; r t ( ⁇ ) ) for all ⁇ ⁇ [k], t ⁇ [n ′ ].
  • ⁇ ⁇ ⁇ ⁇ KeyGen(MSK, f) Let such that Next, sample independent random vectors and computes (l( ⁇ ) 1 ,t , ... , l( ⁇ ) m ,t , l( ⁇ ) m +1,t ) ⁇ Garble( ⁇ [ ⁇ ]z[t]f t (x) + ⁇ t [ ⁇ ]; r t (
  • This scheme is proven adaptively simulation se- cure 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.
  • Enc 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, [[u]] 1 ) IP ⁇ FE.CT t ⁇ SK-IPFE.Enc(IPF ⁇ E.MSK, [[h t ]] 1 ) for t ⁇ [n ′ ] Finally, it returns the ciphertext as CT x,z
  • w (IPFE.CT, ⁇ IP ⁇ FE.CT t ⁇ t ⁇ [n ′ ] ).
  • IPFE.Setup.IPFE.KeyGen, IPFE.Enc, IPFE.Dec a slotted IPFE based on G.
  • Fig. 1 illustrates an encryption system 100 in an embodiment of the present invention in- cluding a setup algorithm Setup, an encryption algorithm Enc, a key generation algorithm KeyGen, and a decryption algorithm Dec of the functional encryption implementations.
  • the encryption system 100 in the embodiment of the present invention includes a setup device 10, an encryption device 20, a key generation device 30, and a decryption device 40. These devices are communicably connected to each other via a communication network 105.
  • 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.
  • 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 FE ⁇ .MSK and FE ⁇ .MPK.
  • 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.
  • 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.
  • 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 FE ⁇ .MPK, one or more public attributes x, and one or more private attributes z.
  • a ciphertext CT as FE.CT and F ⁇ E.CT t 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.
  • 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 FE ⁇ .MSK and a function f where f consists of sub-functions f t , wherein t represents an integer index.
  • the secret key SK f as FE.SK, ⁇ FE.SK j,t ⁇ , ⁇ F ⁇ E.SK t ⁇ and f are generated and output.
  • 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.
  • 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 f and the secret key SK f for function f .
  • 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 FIG. 1 is an example, and other configurations may be employed.
  • any two or more devices of the setup device 10, the encryption device 20, and the key generation device 30 maybe configured as a single device.
  • the encryption system 100 may include a plurality of decryption devices 40.
  • any one or more devices of the setup device 10, the encryption device 20, and the key generation device 30 may be provided as a plurality of devices.
  • FIG. 2 an example system architecture is illustrated.
  • a user 215 allows a remote server 210 to run a specific function F on a ciphertext by issuing a token T F .
  • the server executes F on an available ciphertext C and generates a result R F an encrypted form.
  • the system can include a trusted authority (TA) 220 who is responsible to construct a token T F for the requested function.
  • TA trusted authority
  • 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 T F to the data user.
  • Data user then sends T F to the server.
  • Server runs F on the encrypted data, and forwards the result R F to the data user.
  • Figs. 3 and 4 depict example computer systems useful for implementing various embodiments described in the present disclosure.
  • Various embodiments may be imple- mented, for example, using one or more computer systems, such as computer system 500 shown in Fig. 3.
  • One or more computer system(s) 500 may be used, for exam- ple, to implement any of the embodiments discussed herein, as well as combinations and sub-combinations thereof.
  • Computer system 500 may include one or more processors (also called central pro- cessing units, processing devices, or CPUs), such as a processor 504.
  • processors also called central pro- cessing units, processing devices, or CPUs
  • 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 mon- itors, keyboards, pointing devices, etc., which may communicate with communication infrastructure 506 through user input/output interface(s) 502.
  • processors 504 may be a graphics processing unit (GPU).
  • a GPU may be a pro- cessor that is a specialized electronic circuit designed to process mathematically intensive applications.
  • 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, instrumen- talities, 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 communi- cate 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).
  • communications interface 524 may allow computer sys- tem 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.
  • PDA personal digital assistant
  • 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 (“on- premise” 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.
  • “as a service” models e.g., content as a service (CaaS), digital content as a service (DCaaS), software
  • Fig. 4 illustrates an example machine of a computer system 900 within which a set of instructions, for causing the machine to perform any one or more of the operations discussed herein, may be executed.
  • the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, and/or the Internet.
  • the machine may operate in the capacity of a server or a client machine in a client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or a client machine in a cloud computing infrastructure or environment.
  • 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 net- work 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 other- wise) that specify actions to be taken by that machine.
  • PC personal computer
  • PDA Personal Digital Assistant
  • STB set-top box
  • a cellular telephone a web appliance
  • server a net- work 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 other- wise) that specify actions to be taken by that machine.
  • 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 micropro- cessor, a central processing unit, or the like.
  • the processing device may be complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) micropro- cessor, 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 pro- cessor, 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 instruc- tions 926 (e.g., software instructions) embodying any one or more of the operations de- scribed 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.
  • 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.
  • 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.
  • 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, opti- cal 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.
  • ROMs read-only memories
  • RAMs random access memories
  • EPROMs EPROMs
  • EEPROMs electrically erasable programmable read-only memory
  • magnetic or optical cards or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
  • 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).
  • a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as read-only memory (“ROM”), ran- dom access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, etc.
  • a tangible, non-transitory apparatus or article of manufacture comprising a tangible, non-transitory computer useable or readable medium having con- trol 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 fore- going.
  • 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.
  • data processing devices such as computer system 500
  • data processing devices such as computer system 500
  • embodiments can operate with software, hardware, and/or operating system implementations other than those described herein.
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

Adaptively simulation secure functional encryption systems, methods, network devices, and machine-readable media for attribute-weighted sums are implemented. A secret key corresponds to some weight function f, and decryption recovers a weighted sum. The schemes are built upon asymmetric bilinear groups of prime order and the security is derived under the standard (bilateral) k-Linear (k-Lin) assumption.

Description

Compact Adaptively Secure Functional Encryption For Attribute-Weighted Sums FIELD OF THE INVENTION The disclosure relates to functional encryption, and adaptively simulation secure func- tional encryption schemes for attribute-weighted sums. BACKGROUND OF THE INVENTION Functional encryption (FE) redefines the classical encryption procedure with the moti- vation 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 ci- phertext 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 F , there is a setup authority which produces a master secret key and pub- lishes a master public key. Using the master secret key, the setup authority can derive secret keys or functional decryption keys SKf associated to functions f ∈ F . Anyone can encrypt messages msg belonging to a specified message space msg ∈ M using the master public key to produce a ciphertext CT. The ciphertext CT along with a secret key SKf recovers the function of the message f(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 corre- sponding to a weight function f can learn the attribute-weighted sum of the database, i.e., The attribute-weighted sum functionality appears naturally in several
Figure imgf000003_0001
real life applications. For instance, if we consider the weight function f as a boolean predicate, then the attribute-weighted sum functionality would correspond
Figure imgf000003_0002
to the average zi over all users whose attribute xi satisfies the predicate f . 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 This could capture for instance the number of and
Figure imgf000004_0001
average age of smokers with lung cancer (zi = lung cancer, f = numbers/age). 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
Figure imgf000004_0002
consists of N pairs of public/private attribute vectors (xi, zi)i=1,...,N which is encrypted to a ciphertext CT. A secret key SKf generated for a weight function f allows a recipient to learn from CT without revealing any information about the private
Figure imgf000004_0003
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 SKf 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 signifi- cantly. The unbounded-slot FE work supports expressive function class of arithmetic branch- ing programs (ABPs) which is capable of capturing boolean formulas, boolean span pro- grams, 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. More- over, 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 infor- mation 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 tech- niques 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, hav- ing ciphertexts that do not grow with the number of appearances of the attributes within the weight functions, from the k-Lin assumption. BRIEF SUMMARY OF THE INVENTION 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: execut- ing a computerized setup algorithm, the setup algorithm comprising: executing a func- tional 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
Figure imgf000005_0001
Figure imgf000005_0002
outputting a master secret key MSK as FE.MSK and and a master public key
Figure imgf000005_0003
MPK as FE.MPK and and storing the output master keys in an electronic setup
Figure imgf000005_0004
storage unit; executing a computerized key generation algorithm by: receiving the mas- ter secret key MSK as FE.MSK and
Figure imgf000005_0005
from the setup storage unit and a function f where f comprises sub-functions ft, 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 α, ftt, wherein α and βt are secrets, and the garbling procedure outputs a set of label functions {ℓj,t} 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 ℓ1,t,α, and generating an FE secret key FE.SK1,t for the values v1,t; setting values vj,t as ℓj,t, and generating a FE secret key FE.SKj,t for the values vj,t; setting values v̂t comprising rt,α; generating a functional encryption secret key
Figure imgf000005_0007
t for the values v̂t; and outputting the secret key SKf as FE.SK, {FE.SKj,t}, and f , and storing
Figure imgf000005_0008
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
Figure imgf000005_0006
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 F̂E.CTt for the value ht; and outputting the ciphertext CT as FE.CT and and storing the output in an electronic encryption device storage
Figure imgf000006_0001
unit. Further embodiments can include decryption comprising: receiving the function f and the secret key SKf for function f ; receiving one or more public attributes x and a ciphertext CT for x; retrieving FE.SK, FE.SKj,t, from SKf and retrieving FE.CT and from CT; retrieving sub-func
Figure imgf000006_0005
Figure imgf000006_0002
tions ft from the function f ; 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 ℓj,t; decrypting by running the decryption algorithm of
Figure imgf000006_0004
FE using the secret key and get a value ℓt; running the evaluation algorithm of
Figure imgf000006_0003
the garbling scheme using the values ℓj,t, ℓt and the one or more public attributes x and the sub-function ft, 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. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are included to provide further understanding and are incorporated in and constitute a part of this specification, illustrate disclosed embod- iments, and together with the description, serve to explain the principles of the disclosed embodiments. In the drawings: Fig. 1 illustrates an example embodiment of the present invention for a functional encryption system that is adaptively secure for attribute-weighted sums. Fig. 2 illustrates an example system architecture for a functional encryption system that is adaptively secure for attribute-weighted sums. Fig. 3 illustrates an example computer system architecture for implementing the claimed systems and methods. Fig. 4 illustrates further details of an example computer system architecture for implementing the claimed systems and methods. DETAILED DESCRIPTION As disclosed herein, we resolve the above open problem. More precisely, we make the following contributions. (a) We start by presenting the first one-slot FE scheme for the attribute-weighted sum functionality with the weight functions represented as ABPs that achieves adap- tive simulation-based security and compact ciphertexts, that is, the ciphertext size is independent of the number of appearances of the attributes within the weight functions. The scheme is secure against an adversary who is allowed to make an a-priori bounded number of ciphertext queries and an unbounded (polynomial) number of secret key queries both before and after the ciphertext queries, which is the best possible level of security one could hope to achieve in adaptive simulation- based framework. Since simulation-based security also implies indistinguishability- based security and indistinguishability-based security against single and multiple ciphertexts are equivalent, the proposed FE scheme is also adaptively secure in the indistinguishability-based model against adversaries making unbounded number of ciphertext and secret key queries in any arbitrary order. (b) We next bootstrap our one-slot scheme to an unbounded-slot scheme that also achieves simulation-based adaptive security against a bounded number of ciphertext queries and an unbounded polynomial number of secret key queries. Just like our one-slot scheme, the ciphertexts of our unbounded-slot scheme also do not depend on the number of appearances of the attributes within the weight functions. However, the caveat here is that the number of pre-ciphertext secret key queries is a priori bounded and all parameters of the scheme, namely, the master public key, ciphertexts, and secret keys scale linearly with that upper bound. The disclosed FE schemes are built upon asymmetric bilinear groups of prime or- der. 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 bilin- ear groups of prime order. The bilateral MDDH assumption is the plain MDDH assumption except that the el- ements are available in the exponents of both source groups of a bilinear group simul- taneously. 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 cryp- tographic 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 boot- strapping 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 op- posed 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 ∈ 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 f , and decryption recovers the weighted sum This is an important functionality with a wide range of potential real l
Figure imgf000008_0001
ife 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. (a) We first present a one-slot scheme that achieves adaptive security in the simulation- based security model against a bounded number of ciphertext queries and an arbi- trary polynomial number of secret key queries both before and after the ciphertext queries. This is the best possible level of security one can achieve in the adap- tive simulation-based framework. From the relations between the simulation-based and indistinguishability-based security frameworks for FE, it follows that the pro- posed FE scheme also achieves indistinguishability-based adaptive security against an a-priori unbounded number of ciphertext queries and an arbitrary polynomial number of secret key queries both before and after the ciphertext queries. More- over, the scheme enjoys compact ciphertexts that do not grow with the number of appearances of the attributes within the weight functions. (b) Next, bootstrapping from the one-slot scheme, we present an unbounded-slot scheme that achieves simulation-based adaptive security against a bounded number of ci- phertext and pre-ciphertext secret key queries while supporting an a-priori un- bounded number of post-ciphertext secret key queries. The scheme achieves public parameters and secret key sizes independent of the number of slots N and a secret key can decrypt a ciphertext for any a-priori unbounded N . Further, just like the one-slot scheme, this scheme also has the ciphertext size independent of the number of appearances of the attributes within the weight functions. However, all the pa- rameters of the scheme, namely, the master public key, ciphertexts, and secret keys scale linearly with the bound on the number of pre-ciphertext secret key queries. 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 achiev- ing 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. Technical Overview In this section, we present our main technical ideas. Let G = (G1,G2,GT , g1, g2, e) be a bilinear group of prime order p and [[a]]i denotes for any a ∈ Zp and i ∈ {1, 2, T},
Figure imgf000009_0001
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 f , 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 f(x)z 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 f after making a ciphertext query, the simulator receives f along with the functional value f(x)z 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
Figure imgf000010_0001
p p along with two secrets α, β ∈ Zp so that the evaluation with an input gives the value αf(x) + β. Note that the
Figure imgf000010_0002
evaluation does not reveal any information about α and β. In particular, the AKGS has the following algorithms: • (ℓ1, ... , ℓm+1) ← Garble(αf(x)+β; r): The garbling algorithm outputs (m+1) affine label functions L1, ... , Lm+1, described by their coefficient vectors ℓ1, ... , ℓm+1 over Zp, using the randomness where (m+1) denotes the size of the function f .
Figure imgf000010_0003
• γ ← Eval(f,x, ℓ1, ... , ℓm+1): The linear evaluation procedure recovers γ = αf(x)+ β using the input x and the label function values ℓj = Lj(x) = ℓj · (1,x) ∈ Zp. AKGS is a partial garbling process as it only hides α, β which is captured by the usual simulation security. The simulator produces simulated labels (ℓ̂1, ... , ℓ̂m+1) ← SimGarble(f,x, αf(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 func- tional encryption (IPFE) scheme based on a bilinear group G = (G1,G2,GT , g1, g2, e) generates secret keys IPFE.SK for vectors and produces ciphertexts IPFE.CT
Figure imgf000010_0004
for vectors [[u]]1 ∈ Gn 1 using the master secret key of the system. Both the key gener- ation and encryption algorithm perform linear operations in the exponent of the source groups G2,G1 respectively. The decryption recovers the inner product [[v · u]]T ∈ GT 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. Our One-Slot FE. We aim to design our decryption algorithm such that given a secret key for a weight function ABP f with coordinate functions f1, ... , fn : Zn p → Zp and an encryption of an
Figure imgf000011_0002
attribute vector pair
Figure imgf000011_0005
p p the decryption algorithm would first recover the value for each coordinate z[t]ft(x) masked with a random scalar βt, that is, z[t]ft(x)+βt and then sum over all these values to obtain the desired functional value (we take the scalars {βt}t∈[n ] such that mod p). Thus we want our key
Figure imgf000011_0001
generation algorithm to use AKGS to garble the functions z[t]ft(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 αf(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 ft by adding a new sink node and connecting the original sink node of ft 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 ℓ1,t, ... , ℓm,t are independent of z[t] and the last coefficient vector ℓm+1,t 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
Figure imgf000011_0003
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 f = (f1, ... , fn ) be a given weight function ABP such that is
Figure imgf000011_0004
the t-th coordinate ABP of f . To produce a secret-key SKf , we proceed as follows: t k ∑ • Sample vectors α,β ← Zp such that t∈[n] βt[ι] = 0 mod p ∀ι ∈ [k] • Suppose we want to base the security of the proposed scheme under the MDDHk assumption. Generate k instances of the garblings (ℓ(ι) 1,t, ... , ℓ(ι) m+1,t) ← Garble(α[ι]z[t]ft(x) + βt[ι]; rt (ι) ) for ι ∈ [k] where rt (ι) ← Zm p . Using an instantiation of AKGS, we have that the (m+1)-th label functions L(ι) m+1,t take the form L(ι) (z[t]) = α (ι) m+1,t [ι]z[t]− rt [m] with α[ι] a constant. • Compute the IPFE secret keys
Figure imgf000012_0001
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: • Sample s ← Zk p and use the slotted encryption of IPFE to compute the ciphertexts
Figure imgf000012_0002
where ⊗ denotes the tensor product.
Figure imgf000012_0003
Decryption first uses IPFE.Dec to compute v · u = [[α · s]]T (1) ∑ vj,t · u = [[ s[ι](ℓ(ι) j,t · (1,x))]]T = [[ℓj,t]]T for j ∈ [m], t ∈ [n] (2) ∑ ι vm+1,t · ht = [[ s[ι](α[ι]z[t]− rt (ι) [m])]]T = [[ℓm+1,t]]T for t ∈ [n] (3) ι and then apply the evaluation procedure of AKGS to get Eval(ft,x, [[ℓ1,t]]T , ... , [[ℓm+1,t]]T ) = [[(α · s) · z[t]ft(x) + βt · s]]T . (4) Finally, multiplying all these evaluated values and utilizing the fact ∑ recover
Figure imgf000012_0004
Figure imgf000012_0005
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 fq = (fq,1, ... , fq,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 SKfq takes the form
Figure imgf000013_0003
where
Figure imgf000013_0004
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 V = {(fq, fq(x)z) : q ∈ [Qpre]} to compute a dummy vector d satisfying fq(x)d = fq(x)z for all q ∈ [Qpre]. Since the inner product functionality is pre- image sampleable and both fq,x are known to the simulator, a dummy vector d can be efficiently computed via a polynomial time algorithm. The simulated ciphertext becomes IPFE.CT = IPFE.Enc(IPFE.MSK, [[0k,0kn ∥ 1,x,0n ,0n ]]1) IP ̂FE.CTt = IPFE.Enc(IPF ̂E.MSK, [[0k,0k ∥ 1, 0,−1,d[t], 0, 0, 0]]1) The post-challenge secret-key query for the q-th function fq = (fq,1, ... , fq,n ) with q > Q ∑pre is answered using the simulator of AKGS. In particular, we choose βq,t ← Zp satisfying t∈[n] βq,t = 0 mod p and compute the simulated labels as follows:
Figure imgf000013_0001
Note that, for post-challenge secret keys the functional value fq(x)z is known and hence the simulator can directly embed the value into the secret keys. The post-challenge secret key SKfq takes the form
Figure imgf000013_0002
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. Preliminaries 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 N 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 X , we write x ← X to denote that x is sampled at random according to distribution X . A function negl : N → R is said to be a negligible function of λ, if for every c ∈ N there exists a λc ∈ N 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 ExptC A is a function of λ and it is parametrized by an adversary A and a cryptographic protocol C. Let ExptC A,0 and ExptC,1 A be two such experiment. The experiments are computationally/statistically indistinguishable if for any PPT/computationally unbounded adversary A there exists a negligible function negl such that for all λ ∈ N,
Figure imgf000014_0001
We write
Figure imgf000014_0002
if they are computationally indistinguishable (or simply in- distinguishable). Similarly, means statistically indistinguishable and 1
Figure imgf000014_0003
means they are identically distributed.
Figure imgf000014_0004
For n ∈ N, we denote [n] the set {1, 2, ... , n} and for n,m ∈ N 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 Zn p and uppercase boldface, e.g.,M, to denote matrices in Zn p×m for p, n,m ∈ N. The i-th component of a vector v ∈ Zn p is written as v[i] and the (i, j)-th element of a matrix M ∈ Zn p×m is denoted by M[i, j]. The transpose of a matrix M is denoted by M such that M[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 ∈ Zn p , then the inner product between the vectors is denoted as
Figure imgf000014_0005
Let f : Zn p → Zp be an affine function with coefficient vector f ∑ = (f [const], f [coef1], ... , f [coefn]). Then for any x ∈ Zn p , we have f(x) = f [const] + i∈[n] f [coefi]x[i] ∈ Zp. Bilinear Groups and Hardness Assumptions We use a pairing group generator G that takes as input 1λ and outputs a tuple G = (G1,G2,GT , g1, g2, e) where G1,G2,GT are groups of prime order p = p(λ) and gi is a generator of the group Gi for i ∈ {1, 2}. The map e : G1×G2 → GT satisfies the following properties: – bilinear : e(g1 a , gb 2) = e(g1, g2)ab for all a, b ∈ Zp. – non-degenerate: e(g1, g2) generates GT . The group operations in Gi 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 [[A]]i to denote gi A where the exponentiation is element- wise. The group operation is written additively while using the bracket notation, i.e. [[Ai +B]]i = [[A]] + [[B]]i for matrices A and B. Observe that, given A and [[B]]i, we can efficiently compute [[AB]]i = A · [[B]]i. We write the pairing operation multiplicatively, i.e. e([[A]]1, [[B]]2) = [[A]]1[[B]]2 = [[AB]]T . Assumption 1 (Matrix Diffie-Hellman Assumption) Let k = k(λ), ℓ = ℓ(λ), q = q(λ) be positive integers. We say that the MDDHq k,ℓ assumption holds in Gi (i ∈ {1, 2, T}) if for all PPT adversary A there exists a negligible function negl such that
Figure imgf000015_0001
Prior work showed that the k-Linear (k-Lin) assumption impliesMDDH1 an 1 k,k+1 dMDDHk,k+1 implies MDDHq k,ℓ for all k, q ∈ N and ℓ > k with a tight security reduction. Henceforth, we will use MDDH to denote MD 1 k DHk,k+1. We consider bilateral MDDHq assumption which is a str q k,ℓ engthening of the MDDHk,ℓ assumption. The bilateral MDDHq k,ℓ 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 MDDHq q k,ℓ (bMDDHk,ℓ) as- sumption holds if for all PPT adversary A there exists a negligible function negl such that bMDDHq Adv k,ℓ A (λ) = |Pr[1 ← A(G, {[[A]]i, [[SA]]i}i∈{1,2})]−Pr[1 ← A(G, {[[A]]i, [[U]]i}i∈{1,2})]| l( )
Figure imgf000016_0001
Arithmetic Branching Program 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 Zp. Definition 1 (Arithmetic Branching Program) An arithmetic branching program (ABP) over Zn p is a weighted directed acyclic graph (V,E, ϕ, v0, v1), where V is the set of all vertices, E is the set of all edges, ϕ : E → (Zn p → Zp) 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 f : Zn p → Zp given by ∑ ∏
Figure imgf000016_0002
where P is the set of all v0-v1 path and e ∈ P denotes an edge in the path P ∈ P. The size of the ABP is |V |, the number of vertices.
Figure imgf000016_0003
The class of ABP can be extended in a coordinate-wise manner to a ABPs f : Zn p → Zn′ p . More precisely, an ABP f : Zn p → Zn′ p has all its weight functions ϕ = (ϕ1, ... , ϕn ) : E → (Zn p → Zn′ p ) with each coordinate function ϕt for t ∈ [n] of ϕ being an affine function in x having scalar constants and coefficients. Therefore, such a function f can be viewed as f = (f1, ... , fn ) with each coordinate function ft : Zn p → Zp being an ABP that has the same underlying graph structure as that of f and having ϕt : E → (Zn p → Zp) as the weight functions. The class of all such functions is given by
Figure imgf000016_0004
Thus
Figure imgf000016_0006
can alternatively be viewed as
Figure imgf000016_0005
Lemma 1 be an ABP of size m and v0, v2, ... , vm−1, v1
Figure imgf000016_0007
be stored topologically. Let M be a square matrix of order (m− 1) defined by
Figure imgf000017_0001
Then the entries of M are affine in x and f(x) = det(M). Functional Encryption for Attribute-Weighted Sum 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
Figure imgf000017_0003
space
Figure imgf000017_0002
Definition 2 (The Attribute-Weighted Sum Functionality) For any n, n ∈ N, the class of attribute-weighted sum functionalities is defined as
Figure imgf000017_0004
Definition 3 (Functional Encryption for Attribute-Weighted Sum) An unbounded- slot FE for attribute-weighted sum associated to the function clas and the message
Figure imgf000017_0005
space M consists of four PPT algorithms defined as follows: up(1λ ′ Set , 1n, 1n ) The setup algorithm takes as input a security parameter λ along with two positive integers n, n representing the lengths of message vectors. It outputs the master secret-key MSK and the master public-key MPK. KeyGen(MSK, f) The key generation algorithm takes as input MSK and a function
Figure imgf000017_0006
It outputs a secret-key SKf and make f available publicly. Enc(MPK, (xi, zi)i∈[N ]) The encryption algorithm takes as input MPK and a message (xi, zi)i∈[N ] ∈ (Zn p × Zn′ p ). It outputs a ciphertext CT and make (xi)i∈[N ] available publicly. Dec((SKf , f), (CT, (xi)i∈[N ])) The decryption algorithm takes as input SKf and CT along with f and (xi)i∈[N ]. It outputs a value in Zp. Correctness The unbounded-slot FE for attribute-weighted sum is said to be correct
Figure imgf000018_0001
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 M. The scheme is said to
Figure imgf000018_0002
be (Qpre, QCT, Qpost)-adaptively sim
Figure imgf000018_0003
ulation secure if for any PPT adversary A making at most QCT ciphertext queries and Qpre, Qpost secret key queries before and after the ci- phertext queries respectively, we have
Figure imgf000018_0004
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 λ.
Figure imgf000018_0005
Function-Hiding Slotted Inner Product Functional Encryption 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, GT , 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:
Figure imgf000019_0001
Correctness The correctness of a slotted IPFE scheme requires the following two prop- erties. = 1
Figure imgf000020_0001
Lemma 2 Let G = (G1,G2,GT , 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 G1,G2, then there is an adaptively function-hiding secure IPFE scheme based on G. Arithmetic Key Garbling Scheme 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 f : Zn p → Zp (possibly of size (m + 1)) along with two secrets z, β ∈ Zp and produces affine label functions L1, ... , Lm+1 : Zn p → Zp. Given f , an input x ∈ Zn p and the values L1(x), ... , Lm+1(x), there is an efficient algorithm which computes zf(x) + β without revealing any information about z and β. Definition 6 (Arithmetic Key Garbling Scheme (AKGS)) An arithmetic garbling scheme (AKGS) for a function class F = {f}, where f : Zn p → Zp, consists of two efficient algorithms: Garble(zf(x) + β) The garbling is a randomized algorithm that takes as input a de- scription of the function zf(x) + β with f ∈ F and scalars z, β ∈ Zp where z,x are treated as variables. It outputs (m+ 1) affine functions L1, ... , Lm+1 : Zn p+1 → Zp which are called label functions that specifies how input is encoded as labels. Pragmatically, it outputs the coefficient vectors ℓ1, ... , ℓm+1. Eval(f,x, ℓ1, ... , ℓm+1) The evaluation is a deterministic algorithm that takes as input a function f ∈ F , an input vector x ∈ Zn p and integers ℓ1, ... , ℓm+1 ∈ Zp which are supposed to be the values of the label functions at (x, z). It outputs a value in Zp. Correctness The AKGS is said to be correct if for all f : Zn p → Zp ∈ F , z, β ∈ Zp and x ∈ Zn p , we have
Figure imgf000021_0001
The scheme have deterministic shape, meaning that m is determined solely by f , inde- pendent of z, β and the randomness in Garble. The number of label functions, (m + 1), is called the garbling size of f under this scheme. Linearity The AKGS is said to be linear if the following conditions hold: • Garble(zf(x) + β) uses a uniformly random vector r ← Zm′ p as its randomness, where m is determined solely by f , independent of z, β. • The coefficient vectors ℓ1, ... , ℓm+1 produced by Garble(zf(x) + β) are linear in (z, β, r). • Eval(f,x, ℓ1, ... , ℓm+1) is linear in ℓ1, ... , ℓm+1. 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 F is secure if there exists an efficient algorithm SimGarble such that for all f : Zn p → Zp, z, β ∈ Zp and x ∈ Zn p , the following distributions are identically distributed: { }
Figure imgf000022_0001
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 func- tion class F is piecewise secure if the following conditions hold: • The first label value is reversely sampleable from the other labels together with f and x. This reconstruction is perfect even given all the other label functions. Formally, there exists an efficient algorithm RevSamp such that for all f : Zn p → Zp ∈ F , z, β ∈ Zp and x ∈ Zn p , the following distributions are identical: { }
Figure imgf000022_0002
• For the other labels, each is marginally random even given all the label functions after it. Formally, this means for all f : Zn p → Zp ∈ F , z, β ∈ Zp,x ∈ Zn p and all j ∈ [2,m+ 1], the following distributions are identical: {
Figure imgf000022_0003
Lemma 3 A piecewise secure AKGS = (Garble, Eval) for a function class F 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 F is special piecewise secure if for any
Figure imgf000023_0003
and x ∈ Zn p , it has the following special form: • The first label value ℓ1 is always non-zero, i.e., Eval(f,x, 1, 0, ... , 0) ̸= 0 where we take ℓ1 = 1 and ℓj = 0 for 1 < j ≤ (m+ 1). • Let r ← Zm′ p be the randomness used in Garble(zf(x) + β). For all j ∈ [2,m + 1]. the label function Lj produced by Garble(zf(x) + β; r) can be written as Lj(x) = kjr[j − 1] + L j(x; z, β, r[j], r[j + 1], ... , r[m]) where kj ∈ Zp is a non-zero constant (not depending on x, z, β, r) and L j is an affine function of x whose coefficient vector is linear in (z, β, r[j], r[j+1], ... , r[m]). The component r[j − 1] is called the randomizer of Lj and ℓj. Lemma 4 A special piecewise secure AKGS = (Garble, Eval) for a function class F is also piecewise secure. The RevSamp algorithm (required in piecewise security) obtained for a special piecewise secure AKGS is linear in γ, ℓ2, ... , ℓm+1 and perfectly recovers ℓ1 even if the randomness of Garble is not uniformly sampled. More specifically, we have the following: Eval(f,x, ℓ1, ... , ℓm+1) = ℓ1Eval(f,x, 1, 0, ... , 0) + Eval(f,x, 0, ℓ2, ... , ℓm+1) (7) RevSamp(f,x, γ, ℓ2, ... , ℓm+1) = (Eval(f,x, 1, 0, ... , 0))−1(γ − Eval(f,x, 0, ℓ2, ... , ℓm+1)) (8) Note that, equation 7 follows from the linearity of Eval and equation 8 ensures that RevSamp perfectly computes ℓ1 (which can be verified by equation 7 with γ = zf(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
Figure imgf000023_0001
Garble(zf(x) + β) It takes input an A of size (m+ 1) and two
Figure imgf000023_0002
secrets z, β ∈ Zp. The algorithm works as follows: 1. Using Lemma 1, it computes a matrix M ∈ Zm p ×m such that det(M) is the output of the function f . 2. Next, it augments M into an (m+ 1)× (m+ 1) matrix M:
Figure imgf000024_0001
( ) I t samples its randomness r ← Z m r 3. I m p and sets N = . 0 1 4. Finally, it defines the label functions by computing
Figure imgf000024_0002
and outputs the coefficient vectors ℓ1, ... , ℓm+1 of L1, ... , Lm+1. Remark 1 We note down some structural properties of Garble as follows: • The label function Lj for every j ∈ [m] is an affine function of the input x and Lm+1 is an affine function of z. It follows from the fact that M is affine in x, z and N is independent of x, z. Hence, the last column of the product MN, which is the label functions L1, ... , Lm+1, are affine in x, z. • The output size of Garble is determined solely by the size of f (as an ABP), hence Garble has deterministic shape. • Note that Garble is linear in (z, β, r), i.e., the coefficient vectors ℓ1, ... , ℓm+1 are linear in (z, β, r). It follows from the fact that M,m2 are independent of (z, β, r), and r,m1, z are linear in (z, β, r). Hence, Mr + m1, which defines the label functions L1, ... , Lm, and m⊤ 2 r + z, which is the label function Lm+1, are linear in (z, β, r). • The last label function Lm+1 is in a special form, meaning that it is independent of x, β and r[j < m]. In particular, it takes the form Lm = m⊤ 2 r + z = z − r[m]. Thus, the elements of the coefficient vector ℓm+1 are all zero except the constant term, i.e., ℓm[const] = z − r[m] and ℓm[coefi] = 0 for all i ∈ [n]. Eval(f,x, ℓ1, ... , ℓm) It takes input an ABP f : Zn p → Zp ∈ F (n,1) ABP of size (m + 1), an input x ∈ Zn p and (m+ 1) labels ℓ1, ... , ℓm+1. It proceeds as follows: 1. It computes the matrix M using Lemma 1 after substituting x. 2. Next, it augments M to get the matrix
Figure imgf000025_0001
3. It returns det(M̂). For correctness of the evaluation procedure, we see that when ℓj = Lj(x) for all j ∈ [m] and ℓm+1 = Lm+1(z), Eval computes det(M̂) = det(MN) = det(M)det(N) = det(M) = zdet(M) + β = zf(x) + β. 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. • If we consider the Laplace expansion of det(M̂) in the last column then Eval can be written as Eval(f,x, ℓ1, ... , ℓm+1) = A11 + A22 + · · ·+ Am+1m+1 (9) where Aj is the (j, (m + 1))-cofactor of M̂. This shows that Eval is linear in ℓ1, ... , ℓm+1. Due to this linearity feature, Eval can be computed in the exponent of any bilinear group. More precisely, suppose G = (G1,G2,GT , g1, g2, e) be a bilinear group then for any i ∈ {1, 2, T}, we have Eval(f,x, [[ℓ1]]i, ... , [[ℓm+1]]i) = [[Eval(f,x, ℓ1, ... , ℓm+1)]]i. • Now, in particular, the coefficient of ℓ1 is A1 = (−1)2+m(−1)m = 1. Therefore, for any non-zero δ ∈ Zp, we can write δ + Eval(f,x, ℓ1, ... , ℓm+1) = Eval(f,x, δ, 0, ... , 0) + Eval(f,x, ℓ1, ... , ℓm+1) (10) = Eval(f,x, ℓ1 + δ, ℓ2, ... , ℓm+1) (11) where equation 10 holds due to equation 9 and A1 = 1; and equation 11 holds by the linearity of Eval. We will utilize equation 11 in our extended one slot FE construction. Now, we describe the simulator of AKGS which simulates the values of label functions by using f,x and zf(x) + β. SimGarble(f,x, zf(x) + β) The simulator works as follows: 1. It defines a set which forms a matrix subgroup.
Figure imgf000026_0001
2. Following Lemma 1, it computes the matrix M using f,x and sets the matrix
Figure imgf000026_0002
which defines a left coset M′′H = {M′′N|N ∈ H}. 3. It uniformly samples a random matrix from the coset M′′H and returns the last column of the matrix as simulated values of the label functions. Lemma 6 The above construction of AKGS = (Garble, Eval) is secure. Moreover, it is special piecewise secure as per Definition 8. 1-Key 1-Ciphertext Secure One-Slot FE for Attribute-Weighted Sums 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 λ and suppress the appearance of λ for simplicity of notations. Let (Garble,Eval) be a special piecewise secure S for a function class F ( ′ AKG n,n ) ABP , G = (G1,G2,GT , 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.
Figure imgf000027_0002
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 ℓm+1,t would be of the form ℓm+1,t = z[t]−rt[m]. Also all the label functions ℓ1,t, ... , ℓm,t 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 ℓj,t obtained from the partial garbling:
Figure imgf000027_0003
It generates the secret-keys as
Figure imgf000027_0001
Figure imgf000028_0001
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.
Figure imgf000028_0002
Therefore, we get by multiplying
Figure imgf000029_0002
One-Slot FE for Attribute-Weighted Sums 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 λ and suppress the appearance of λ for simplicity of notations. Let (Garble,Eval) be a special piecewise secure AKGS for a function class
Figure imgf000029_0001
a tuple of pairing groups of prime order p such that MDDHk holds in G2, 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 M = Zn p × Zn′ p . n n′ Setup(1 , 1 ) Define the following index sets as follows { } { }
Figure imgf000029_0003
KeyGen(MSK, f) Let such
Figure imgf000030_0003
that
Figure imgf000030_0002
Next, sample independent random vectors and computes
Figure imgf000030_0001
(ℓ(ι) 1,t, ... , ℓ(ι) m,t, ℓ(ι) m+1,t) ← Garble(α[ι]z[t]ft(x) + βt[ι]; rt (ι) ) 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
Figure imgf000030_0004
would be of the form
Figure imgf000030_0005
, where α[ι] is a constant. Also all the label functions ℓ(ι) (ι) 1,t, ... , ℓm,t 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 ℓ(ι) j,t obtained from the partial garbling above as
Figure imgf000030_0006
for all t ∈ [n]. It encrypts the vectors as
Figure imgf000031_0001
[ ] Finally, it returns a value ζ from a polynomially bounded set P such that [[ρ]]T = [[µ]]T · [[ζ]]T ; otherwise ⊥. Correctness By the correctness of IPFE, AKGS and the linearity of the Eval function we have
Figure imgf000031_0002
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 2nqCT 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. 1-Key 1-Ciphertext Secure One-Slot Extended FE Designed for Bounded-Key One-Slot Extended FE for Attribute-Weighted Sums 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,Eval) be a special piecewise secure AKGS function class F (n, ′ for a n ) ABP , G = (G1,G2,GT , 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. λ n n′ Setup(1 , 1 , 1 ) Define the following index sets as follows { } ←
Figure imgf000032_0001
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 ℓm+1,t would be of the form ℓm+1,t = z[t]−rt[m]. Also all the label functions ℓ1,t, ... , ℓm,t 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 ℓj,t obtained from the partial garbling above and the vector y as
Figure imgf000033_0001
Remark. We note that the key-generation process can be performed if the vector y is not given in the clear, but [[y]]2 ∈ Gk 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 G2. This fact will be used in the security analysis of our unbounded FE scheme.
Figure imgf000033_0002
Figure imgf000034_0002
Bounded-Key One-Slot Extended FE for Attribute-Weighted Sums In this section, we present a public-key one-slot FE scheme
Figure imgf000034_0001
for an extended attribute-weighted sum functionality. This scheme is proven adaptively simulation se- cure 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 construc- tion 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 F (n,n ) ABP , G = (G1,G2,GT , g1, g2, e) a tuple of pairing groups of prime order p such that MDDHk holds in G2, 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
Figure imgf000035_0001
′ Setup(1λ, 1n, 1n , 1B) Defines the following index sets as follows { }
Figure imgf000035_0002
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 ℓ(ι) (ι) m+1,t would be of the form ℓm+1,t = α[ι]z[t] − rt (ι) [m] where α[ι] is a constant. Also all the label functions ℓ(ι) 1,t, ... , ℓ(ι) m,t 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 ℓj,t obtained from the partial garbling above and the vector y as
Figure imgf000036_0001
Remark 4 We note that the vector y is only used to set v (ι) 1,t[extndκ ] and the IPFE.KeyGen only requires [[v1,t]]2 ∈ Gk 2 to compute the secret-key IPFE.SK1,t. Therefore, the key generation process can compute the same secret-key SKf,y if (f, [[y]]2) is supplied as input instead of (f,y) and we express this by writing KeyGen(MSK, (f, [[y]]2)) = Key- Gen(MSK, (f,y)). This fact will be crucial while describing the unbounded slot FE.
Figure imgf000036_0002
Dec((SKf,y, f), (CT,x)) It parses the secret-key and ciphertext as SKf,y = (IPFE.SK, {IPFE.SKj,t}j∈[m],t∈[n ], {IP ̂FE.SKm+1,t}t∈[n ]) and CTx,z = (IPFE.CT, {IP ̂FE.CTt}t∈[n ]). It uses the decryption algorithm of IPFE to compute [[ρ]]T ← IPFE.Dec(IPFE.SK, IPFE.CT) [[ℓ1,t + ψt]]T ← IPFE.Dec(IPFE.SK1,t, IPFE.CT) [[ℓj,t]]T ← IPFE.Dec(IPFE.SKj,t, IPFE.CT) for j ∈ [2,m], t ∈ [n] [[ℓm+1,t]]T ← IPFE.Dec(IP ̂FE.SKm+1,t,IP ̂FE.CTt) for t ∈ [n] ∑ where ψt = k ι=1α[ι]s[ι] · νt · yw = α · s · νt · yw. Next, it utilizes the evaluation procedure of AKGS and obtain a combined value ∏ [[ζ]]T = Eval(ft,x, [[ℓ1,t + ψt]]T , ... , [[ℓm+1,t]]T ). t∈[n] Finally, it returns a value [[µ]]T = [[ζ]]T · [[ρ]] T 1 ∈ GT . Correctness First, the IPFE correctness implies IPFE.Dec(IPFE.SK1,t, IPFE.CT) = [[ℓ + ∑ 1,t ψt]] where ψt = k ι=1α[ι]s[ι] · νt · yw = α · s · νt · yw. Next, by the correctness of IPFE, AKGS we have Eval(ft,x, ℓ1,t + ψt, ... , ℓm+1,t) = Eval(ft,x, ℓ1,t, ... , ℓm+1,t) + Eval(ft,x, ψt, 0, ... , 0) = Eval(ft,x, ℓ1,t, ... , ℓm+1,t) + ψtk = (α[ι]s[ι] · z[t]ft(x) + βt[ι]s[ι]) +α · s · νt · yw ι=1 = α · s · (z[t]ft(x) + νt · yw) + βt · s The first equality follows from the linearity of Eval algorithm. Therefore, multiplying all the evaluated values we have ∏ [[ζ]]T = Eval(ft,x, [[ℓ1,t + ψt]]T , ... , [[ℓm+1,t]]T ) t∈[n] ∑ n′ = [[ α · s · (z[t]ft(x) + νt · yw) + βt · s]]T = [[α · s · (f(x)z + yw)]]T t=1 ∑ ∑ 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 [[ρ]]T = [[α · s]]T and hence [[µ]]T = [[f(x)z + yw]]T . Theorem 2 The extended one slot FE scheme for attribute-weighted sum is adap-
Figure imgf000038_0001
tively simulation-secure assuming the AKGS is piecewise-secure as per Definition 7, the MDDHk assumption holds in group G2, and the slotted IPFE is function hiding as per Definition 5. 1-Key 1-Ciphertext Secure One-Slot Extended FE Designed for Unbounded- Key One-Slot Extended FE for Attribute-Weighted Sums 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,Eval) be a special piecewise secure AKGS ion class F (n, ′ for a funct n ) ABP , G = (G1,G2,GT , 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.
Figure imgf000038_0002
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 ℓm+1,t would be of the form ℓm+1,t = z[t]−rt[m]. Also all the label functions ℓ1,t, ... , ℓm,t 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 ℓj,t obtained from the partial garbling above and the vector y as
Figure imgf000039_0002
It also sets the vectors vm+1,t for t ∈ [n] corresponding to the (m + 1)-th label function ℓm+1,t as
Figure imgf000039_0003
Now, it uses the key generation algorithm of IPFE to generate the secret-keys IPFE.SKj,t ← SK-IPFE.KeyGen(IPFE.MSK, [[vj,t]]2) for j ∈ [m], t ∈ [n] IP ̂FE.SKm+1,t ← SK-IPFE.KeyGen(IPF ̂E.MSK, [[vm+1,t]]2) for t ∈ [n] It returns the secret-key as SKf,y = ({IPFE.SKj,t}j∈[m],t∈[n ], {IP ̂FE.SKm+1,t}t∈[n ]). Enc It sets the following vectors:
Figure imgf000039_0001
∗ τ
Figure imgf000039_0004
for all t ∈ [n]. Then, it encrypts the vectors using IPFE and obtain the ciphertexts IPFE.CT ← SK-IPFE.Enc(IPFE.MSK, [[u]]1) IP ̂FE.CTt ← SK-IPFE.Enc(IPF ̂E.MSK, [[ht]]1) for t ∈ [n] Finally, it returns the ciphertext as CTx,z||w = (IPFE.CT, {IP ̂FE.CTt}t∈[n ]).
Figure imgf000040_0002
Unbounded-Key One-Slot Extended FE for Attribute-Weighted Sums In this section, we present a public-key one-slot FE scheme
Figure imgf000040_0001
for an extended attribute-weighted sum functionality. This scheme is proven adaptively simulation se- cure 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
Figure imgf000041_0002
, G = (G1,G2,GT , g1, g2, e) a tuple of pairing groups of prime order p such that MDDHk holds in G2, 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
Figure imgf000041_0001
Figure imgf000041_0004
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 ℓ(ι) m+1,t would be of the form ℓ(ι) m+1,t = α[ι]z[t] − rt (ι) [m] where α[ι] is a constant. Also all the label functions ℓ(ι) 1,t, ... , ℓ(ι) m,t 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 ℓj,t obtained from the partial garbling above and the vector y as
Figure imgf000041_0003
It generates the secret-keys as
Figure imgf000042_0002
for all t ∈ [n]. It encrypts the vectors as IPFE.CT ← IPFE.SlotEnc(IPFE.MPK, [[u]]1) IP ̂FE.CTt ← IPFE.SlotEnc(IPF ̂E.MPK, [[ht]]1) for t ∈ [n] and returns the ciphertext as CT = (IPFE.CT, {IP ̂FE.CTt}t∈[n ]) and x. Dec((SKf,y, f), (CT,x)) It parses the secret-key as SKf = (IPFE.SK, {IPFE.SKj,t}j∈[m],t∈[n ], {IP ̂FE.SKm+1,t}t∈[n ]) and the ciphertext as CTx,z = (IPFE.CT, {IP ̂FE.CTt}t∈[n ]). It uses the decryption algorithm of IPFE to compute
Figure imgf000042_0001
Figure imgf000043_0001
System Implementations Fig. 1 illustrates an encryption system 100 in an embodiment of the present invention in- cluding a setup algorithm Setup, an encryption algorithm Enc, a key generation algorithm KeyGen, and a decryption algorithm Dec of the functional encryption implementations. As illustrated in FIG. 1, the encryption system 100 in the embodiment of the present invention includes a setup device 10, an encryption device 20, a key generation device 30, and a decryption device 40. These devices are communicably connected to each other via a communication network 105. 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 FE ̂.MSK and FE ̂.MPK. 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 FE ̂.MPK, 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 F̂E.CTt 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 FE ̂.MSK and a function f where f consists of sub-functions ft, wherein t represents an integer index. In the key generation algorithm KeyGen, the secret key SKf as FE.SK, {FE.SKj,t}, {F̂E.SKt} and f 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 f and the secret key SKf for function f . 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 FIG. 1 is an example, and other configurations may be employed. For example, any two or more devices of the setup device 10, the encryption device 20, and the key generation device 30 maybe configured as a single device. The encryption system 100 may include a plurality of decryption devices 40. Similarly, any one or more devices of the setup device 10, the encryption device 20, and the key generation device 30 may be provided as a plurality of devices. With reference to Fig. 2, an example system architecture is illustrated. A user 215 allows a remote server 210 to run a specific function F on a ciphertext by issuing a token TF . The server executes F on an available ciphertext C and generates a result RF an encrypted form. The system can include a trusted authority (TA) 220 who is responsible to construct a token TF for the requested function. 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. Figs. 3 and 4 depict example computer systems useful for implementing various embodiments described in the present disclosure. Various embodiments may be imple- mented, for example, using one or more computer systems, such as computer system 500 shown in Fig. 3. One or more computer system(s) 500 may be used, for exam- ple, to implement any of the embodiments discussed herein, as well as combinations and sub-combinations thereof. Computer system 500 may include one or more processors (also called central pro- cessing 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 mon- itors, 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 pro- cessor that is a specialized electronic circuit designed to process mathematically intensive applications. The GPU may have a parallel structure that is efficient for parallel process- ing 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, instrumen- talities, 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 communi- cate 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 sys- tem 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 (“on- premise” 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. Fig. 4 illustrates an example machine of a computer system 900 within which a set of instructions, for causing the machine to perform any one or more of the operations discussed herein, may be executed. In alternative implementations, the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, and/or the Internet. The machine may operate in the capacity of a server or a client machine in a client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or a client machine in a cloud computing infrastructure or environment. 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 net- work 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 other- wise) 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 micropro- cessor, 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) micropro- cessor, 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 pro- cessor, 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 instruc- tions 926 (e.g., software instructions) embodying any one or more of the operations de- scribed 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 ap- plied 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, opti- cal 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”), ran- dom 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 con- trol 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 fore- going. 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 Figs. 3 and 4. In particular, embodiments can operate with software, hardware, and/or operating system implementations other than those described herein. 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 ap- plications, 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 illus- trated 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 embodi- ment,” or similar phrases, indicate that the embodiment described can include a par- ticular 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 ex- pression “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 above- described 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.

Claims

CLAIMS 1. A computerized method for encrypting for a functional encryption scheme, the method comprising: 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 pairsFE ̂.MSK and FE ̂.MPK; outputting a master secret key MSK as FE.MSK and FE ̂.MSK and a master public key MPK as FE.MPK and FE ̂.MPK, 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 FE ̂.MSK from the setup storage unit and a function f where f comprises sub-functions ft, 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 α, ftt, wherein α and βt are secrets, and the garbling procedure outputs a set of label functions {ℓj,t} 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 ℓ1,t,α, and generating an FE secret key FE.SK1,t for the values v1,t; setting values vj,t as ℓj,t, and generating a FE secret key FE.SKj,t for the values vj,t; setting values v̂t comprising rt,α; generating a functional encryption secret key F̂E.SKt for the values v̂t; and outputting the secret key SKf as FE.SK, {FE.SKj,t}, {F̂E.SKt} and f , and storing the output in an electronic key generation storage unit.
2. The method of claim 1, further comprising an encryption method, the encryption method comprising: receiving the master public key MPK as FE.MPK and FE ̂.MPK, 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 F̂E.CTt for the value ht; and outputting the ciphertext CT as FE.CT and F̂E.CTt and storing the output in an electronic encryption device storage unit.
3. The method of claim 2, further comprising a decryption method, the decryption method comprising: receiving the function f and the secret key SKf for function f ; receiving one or more public attributes x and a ciphertext CT for x; retrieving FE.SK, FE.SKj,t, F̂E.SKt from SKf and retrieving FE.CT and F̂E.CTt from CT; retrieving sub-functions ft from the function f ; 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 ℓj,t; decrypting F̂E.CTt by running the decryption algorithm of FE using the secret key F̂E.SKt and get a value ℓt; running the evaluation algorithm of the garbling scheme using the values ℓj,t, ℓt and the one or more public attributes x and the sub-function ft, 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.
4. The method of claim 1, wherein the first set is for encrypting a public part of at- tributes and the second set is for use in encrypting a private part of the attributes.
5. A system for encrypting for a functional encryption scheme, comprising a processor, wherein the processor is configured for: 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 pairsFE ̂.MSK and FE ̂.MPK; outputting a master secret key MSK as FE.MSK and FE ̂.MSK and a master public key MPK as FE.MPK and FE ̂.MPK, 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 FE ̂.MSK from the setup storage unit and a function f where f comprises sub-functions ft, 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 α, ftt, wherein α and βt are secrets, and the garbling procedure outputs a set of label functions {ℓj,t} 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 ℓ1,t,α, and generating an FE secret key FE.SK1,t for the values v1,t; setting values vj,t as ℓj,t, and generating a FE secret key FE.SKj,t for the values vj,t; setting values v̂t comprising rt,α; generating a functional encryption secret key F̂E.SKt for the values v̂t; and outputting the secret key SKf as FE.SK, {FE.SKj,t}, {F̂E.SKt} and f , and storing the output in an electronic key generation storage unit.
6. The system of claim 5, wherein the processor is further configured for: receiving the master public key MPK as FE.MPK and FE ̂.MPK, 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 F̂E.CTt for the value ht; and outputting the ciphertext CT as FE.CT and F̂E.CTt and storing the output in an electronic encryption device storage unit.
7. The system of claim 6, wherein the processor is further configured for: receiving the function f and the secret key SKf for function f ; receiving one or more public attributes x and a ciphertext CT for x; retrieving FE.SK, FE.SKj,t, F̂E.SKt from SKf and retrieving FE.CT and F̂E.CTt from CT; retrieving sub-functions ft from the function f ; 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 ℓj,t; decrypting F̂E.CTt by running the decryption algorithm of FE using the secret key F̂E.SKt and get a value ℓt; running the evaluation algorithm of the garbling scheme using the values ℓj,t, ℓt and the one or more public attributes x and the sub-function ft, 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.
8. The system of claim 5, wherein 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.
9. One or more tangible, non-transitory, machine-readable media comprising instruc- tions configured to cause a processor to encrypt for a functional encryption scheme, wherein processing the functional encryption scheme comprises: 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 pairsFE ̂.MSK and FE ̂.MPK; outputting a master secret key MSK as FE.MSK and FE ̂.MSK and a master public key MPK as FE.MPK and FE ̂.MPK, 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 FE ̂.MSK from the setup storage unit and a function f where f comprises sub-functions ft, 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 α, ftt, wherein α and βt are secrets, and the garbling procedure outputs a set of label functions {ℓj,t} 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 ℓ1,t,α, and generating an FE secret key FE.SK1,t for the values v1,t; setting values vj,t as ℓj,t, and generating a FE secret key FE.SKj,t for the values vj,t; setting values v̂t comprising rt,α; generating a functional encryption secret key F̂E.SKt for the values v̂t; and outputting the secret key SKf as FE.SK, {FE.SKj,t}, {F̂E.SKt} and f , and storing the output in an electronic key generation storage unit.
10. The one or more machine-readable media of claim 9, wherein processing the en- cryption method further comprises: receiving the master public key MPK as FE.MPK and FE ̂.MPK, 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 F̂E.CTt for the value ht; and outputting the ciphertext CT as FE.CT and F̂E.CTt and storing the output in an electronic encryption device storage unit.
11. The one or more machine-readable media of claim 10, wherein processing the en- cryption method further comprises: receiving the function f and the secret key SKf for function f ; receiving one or more public attributes x and a ciphertext CT for x; retrieving FE.SK, FE.SKj,t, F̂E.SKt from SKf and retrieving FE.CT and F̂E.CTt from CT; retrieving sub-functions ft from the function f ; 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 ℓj,t; decrypting F̂E.CTt by running the decryption algorithm of FE using the secret key F̂E.SKt and get a value ℓt; running the evaluation algorithm of the garbling scheme using the values ℓj,t, ℓt and the one or more public attributes x and the sub-function ft, 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.
12. The one or more machine-readable media of claim 9, wherein 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.
PCT/US2022/039569 2021-08-06 2022-08-05 Compact Adaptively Secure Functional Encryption For Attribute-Weighted Sums WO2023014969A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163230065P 2021-08-06 2021-08-06
US63/230,065 2021-08-06

Publications (1)

Publication Number Publication Date
WO2023014969A1 true WO2023014969A1 (en) 2023-02-09

Family

ID=85154798

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2022/039569 WO2023014969A1 (en) 2021-08-06 2022-08-05 Compact Adaptively Secure Functional Encryption For Attribute-Weighted Sums

Country Status (1)

Country Link
WO (1) WO2023014969A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566601B1 (en) * 2012-09-12 2013-10-22 Zeutro Llc Systems and methods for functional encryption using a string of arbitrary length
US9209974B1 (en) * 2015-05-03 2015-12-08 Zeutro, Llc Functional encryption key management
WO2021001990A1 (en) * 2019-07-04 2021-01-07 三菱電機株式会社 Data processing device, decryption device, data processing method, decryption method, data processing program, and decryption program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566601B1 (en) * 2012-09-12 2013-10-22 Zeutro Llc Systems and methods for functional encryption using a string of arbitrary length
US9209974B1 (en) * 2015-05-03 2015-12-08 Zeutro, Llc Functional encryption key management
WO2021001990A1 (en) * 2019-07-04 2021-01-07 三菱電機株式会社 Data processing device, decryption device, data processing method, decryption method, data processing program, and decryption program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ABDALLA: "Functional Encryption for Attribute-Weighted Sums from k-Lin", CRYPTO 2020 - 40TH ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENC E, August 2020 (2020-08-01), pages 685 - 716, XP047558377, Retrieved from the Internet <URL:https://hal.inria.fr/hal-02948674> [retrieved on 20221018], DOI: 10.1007/978-3-030-56784-2_23 *
MICHEL ABDALLA ; DARIO CATALANO ; ROMAIN GAY ; BOGDAN URSU: "Inner-Product Functional Encryption with Fine-Grained Access Control", IACR, INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH, vol. 20200518:070654, 16 May 2020 (2020-05-16), International Association for Cryptologic Research , pages 1 - 48, XP061035862 *

Similar Documents

Publication Publication Date Title
Martins et al. A survey on fully homomorphic encryption: An engineering perspective
Li et al. Privacy-preserving machine learning with multiple data providers
Katsumata et al. Lattice-based revocable (hierarchical) IBE with decryption key exposure resistance
Gagliardoni et al. Semantic security and indistinguishability in the quantum world
CN106789044B (en) Searchable encryption method for cipher text data public key stored in cloud on grid under standard model
Teng et al. A Modified Advanced Encryption Standard for Data Security.
Gong et al. Homomorphic evaluation of the integer arithmetic operations for mobile edge computing
Katsumata et al. Non-zero inner product encryption schemes from various assumptions: LWE, DDH and DCR
Papakonstantinou et al. How powerful are the DDH hard groups?
Albrecht et al. Tightly secure ring-LWE based key encapsulation with short ciphertexts
Jang et al. Privacy-preserving deep sequential model with matrix homomorphic encryption
Zhao et al. Quantum-safe HIBE: does it cost a Latte?
Hsieh et al. Attribute-based encryption for circuits of unbounded depth from lattices
Lai et al. Trapdoors for ideal lattices with applications
Luo et al. Revocable attribute-based encryption from standard lattices
Xie et al. Access-oblivious and privacy-preserving k nearest neighbors classification in dual clouds
Li et al. Privacy preserving via multi-key homomorphic encryption in cloud computing
Datta et al. (Compact) adaptively secure FE for attribute-weighted sums from k-Lin
Hemenway et al. Adaptive security with quasi-optimal rate
US20240080203A1 (en) Decentralized multi-authority attribute-based encryption from bilinear diffie-hellman assumptions
Hu et al. Public-key encryption for protecting data in cloud system with intelligent agents against side-channel attacks
Zhang et al. Efficient federated learning framework based on multi-key homomorphic encryption
Raghunathan et al. Deterministic public-key encryption for adaptively-chosen plaintext distributions
JP2024514711A (en) Decentralized multi-authority attribute-based encryption with fully adaptive security
WO2023014969A1 (en) Compact Adaptively Secure Functional Encryption For Attribute-Weighted Sums

Legal Events

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

Ref document number: 22853951

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE