This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Functional Encryption with Secure Key Leasing

Fuyuki Kitagawa 1 and Ryo Nishimaki 1
Abstract

Secure software leasing is a quantum cryptographic primitive that enables us to lease software to a user by encoding it into a quantum state. Secure software leasing has a mechanism that verifies whether a returned software is valid or not. The security notion guarantees that once a user returns a software in a valid form, the user no longer uses the software.

In this work, we introduce the notion of secret-key functional encryption (SKFE) with secure key leasing, where a decryption key can be securely leased in the sense of secure software leasing. We also instantiate it with standard cryptographic assumptions. More specifically, our contribution is as follows.

  • We define the syntax and security definitions for SKFE with secure key leasing.

  • We achieve a transformation from standard SKFE into SKFE with secure key leasing without using additional assumptions. Especially, we obtain bounded collusion-resistant SKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} with secure key leasing based on post-quantum one-way functions since we can instantiate bounded collusion-resistant SKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} with the assumption.

Some previous secure software leasing schemes capture only pirate software that runs on an honest evaluation algorithm (on a legitimate platform). However, our secure key leasing notion captures arbitrary attack strategies and does not have such a limitation.

As an additional contribution, we introduce the notion of single-decryptor FE (SDFE), where each functional decryption key is copy-protected. Since copy-protection is a stronger primitive than secure software leasing, this notion can be seen as a stronger cryptographic primitive than FE with secure key leasing. More specifically, our additional contribution is as follows.

  • We define the syntax and security definitions for SDFE.

  • We achieve collusion-resistant single-decryptor PKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} from post-quantum indistinguishability obfuscation and quantum hardness of the learning with errors problem.

Keywords: Functional encryption, secure leasing, copy-protection, quantum cryptography

1 NTT Social Informatics Laboratories, Tokyo, Japan

{fuyuki.kitagawa.yh,ryo.nishimaki.zk}@hco.ntt.co.jp

\textblockorigin

0.50.9

{textblock}

1[0.5,0](0,.25)

1 Introduction

1.1 Background

Functional encryption (FE) [BSW11] is an advanced encryption system that enables us to compute on encrypted data. In FE, an authority generates a master secret key and an encryption key. An encryptor uses the encryption key to generate a ciphertext 𝖼𝗍x\mathsf{ct}_{x} of a plaintext xx. The authority generates a functional decryption key 𝖿𝗌𝗄\mathsf{fsk} from a function ff and the master secret key. When a decryptor receives 𝖿𝗌𝗄\mathsf{fsk} and 𝖼𝗍x\mathsf{ct}_{x}, it can compute f(x)f(x) and obtains nothing beyond f(x)f(x). In secret-key FE (SKFE), the encryption key is the same as the master secret key, while the encryption key is public in public-key FE (PKFE).

FE offers flexible accessibility to encrypted data since multiple users can obtain various processed data via functional decryption keys. Public-key encryption (PKE) and attribute-based encryption (ABE) [SW05] do not have this property since they recover an entire plaintext if decryption succeeds. This flexible feature is suitable for analyzing sensitive data and computing new data from personal data without compromising data privacy. For example, we can compute medical statistics from patients’ data without directly accessing individual data. Some works present practical applications of FE (for limited functionalities): non-interactive protocol for hidden-weight coin flips [CS19], biometric authentication, nearest-neighbor search on encrypted data [KLM+18], private inference on encrypted data [RPB+19].

One issue is that once a user obtains 𝖿𝗌𝗄\mathsf{fsk}, it can compute f(x)f(x) from a ciphertext of xx forever. An authority may not want to provide users with the permanent right to compute on encrypted data. A motivative example is as follows. A research group member receives a functional decryption key 𝖿𝗌𝗄\mathsf{fsk} to compute some statistics from many encrypted data for their research. When the member leaves the group, an authority wants to prevent the member from doing the same computation on another encrypted data due to terms and conditions. However, the member might keep a copy of their functional decryption key and penetrate the database of the group to do the same computation. Another motivation is that the subscription business model is common for many services such as cloud storage services (ex. OneDrive, Dropbox), video on demand (ex. Netflix, Hulu), software applications (ex. Office 365, Adobe Photoshop). If we can keep a copy of functional decryption keys, we cannot use FE in the subscription business model (for example, FE can be used as broadcast encryption in a video on demand). We can also consider the following subscription service. A company provides encrypted data sets for machine learning and a functional decryption key. A researcher can perform some tasks using the encrypted data set and the key.

Achieving a revocation mechanism [NP01] is an option to solve the issue above. Some works propose revocation mechanisms for advanced encryption such as ABE [SSW12] and FE [NWZ16]. However, revocation is not a perfect solution since we need to update ciphertexts to embed information about revoked users. We want to avoid updating ciphertexts for several reasons. One is a practical reason. We possibly handle a vast amount of data, and updating ciphertexts incurs significant overhead. Another one is more fundamental. Even if we update ciphertexts, there is no guarantee that all old ciphertexts are appropriately deleted. If some user keeps copies of old ciphertexts, and a data breach happens after revocation, another functional decryption key holder whose key was revoked still can decrypt the old ciphertexts.

This problem is rooted in classical computation since we cannot prevent copying digital data. Ananth and La Placa introduce the notion of secure software leasing [AL21] to solve the copy problem by using the power of quantum computation. Secure software leasing enables us to encode software into a leased version. The leased version has the same functionality as the original one and must be a quantum state to prevent copying. After a lessor verifies that the returned software from a lessee is valid (or that the lessee deleted the software), the lessee cannot execute the software anymore. Several works present secure software leasing for simple functionalities such as a sub-class of evasive functions (𝗌𝗎𝖻𝖤𝖵𝖲\mathsf{subEVS}), PKE, signatures, pseudorandom functions (PRFs) [AL21, ALL+21, KNY21, BJL+21, CMP20]. If we can securely implement leasing and returning mechanisms for functional decryption keys, we can solve the problem above. Such mechanisms help us to use FE in real-world applications.

Thus, the main question in this work is as follows.

Can we achieve secure a leasing mechanism for functional decryption keys of FE?

We can also consider copy-protection, which is stronger security than secure leasing. Aaronson [Aar09] introduces the notion of quantum copy-protection. Copy-protection prevents users from creating a pirate copy. It does not have a returning process, and prevents copying software. If a user returns the original software, no copy is left behind on the user, and it cannot run the software. Coladangelo, Liu, Liu, and Zhandry [CLLZ21] achieve copy-protected PRFs and single-decryptor encryption (SDE)111SDE is PKE whose decryption keys are copy-protected.. Our second question in this work is as follows.

Can we achieve copy-protection for functional decryption keys of FE?

We affirmatively answer those questions in this work.

1.2 Our Result

Secure key leasing.

Our main contributions are introducing the notion of SKFE with secure key leasing and instantiating it with standard cryptographic assumptions. More specifically,

  • We define the syntax and security definitions for SKFE with secure key leasing.

  • We achieve a transformation from standard SKFE into SKFE with secure key leasing without using additional assumptions.

In SKFE with secure key leasing, a functional decryption key is a quantum state. More specifically, the key generation algorithm takes as input a master secret key, a function ff, and an availability bound nn (in terms of the number of ciphertexts), and outputs a quantum decryption key 𝒻𝓈𝓀\mathpzc{fsk} tied to ff. We can generate a certificate for deleting the decryption key 𝒻𝓈𝓀\mathpzc{fsk}. If the user of this decryption key deletes 𝒻𝓈𝓀\mathpzc{fsk} within the declared availability bound nn and the generated certificate is valid, the user cannot compute f(x)f(x) from a ciphertext of xx anymore. We provide a high-level overview of the security definition in Section 1.3.

We can obtain bounded collusion-resistant SKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} with secure key leasing from OWFs since we can instantiate bounded collusion-resistant SKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} with OWFs.222If we start with fully collusion-resistant SKFE, we can obtain fully collusion-resistant SKFE with secure key leasing. Note that all building blocks in this work are post-quantum secure since we use quantum computation and we omit “post-quantum”.

Our secure key leasing notion is similar to but different from secure software leasing [AL21] for FE because adversaries in secure software leasing (for FE) must run their pirate software by an honest evaluation algorithm (on a legitimate platform). This is a severe limitation. In our FE with secure key leasing setting, adversaries do not necessarily run their pirate software (for functional decryption) by an honest evaluation algorithm and can take arbitrary attack strategies.

We develop a transformation from standard SKFE into SKFE with secure key leasing by using quantum power. In particular, we use (reusable) secret-key encryption (SKE) with certified deletion [BI20, HMNY21], where we can securely delete ciphertexts, as a building block. We also develop a technique based on the security bound amplification for FE [AJL+19, JKMS20] to amplify the availability bound, that is, the number of encryption queries before 𝖼𝗍\mathsf{ct}^{\ast} is given. This technique deviates from known multi-party-computation-based techniques for achieving bounded many-ciphertext security for SKFE [GVW12, AV19].333These techniques [GVW12, AV19] work as transformations from single-key FE into bounded collusion-resistant FE. However, they also work as transformations from single-ciphertext SKFE into bounded many-ciphertext SKFE. See Section 1.4 for the detail. Many-ciphertext means that SKFE is secure even if adversaries can send unbounded polynomially many queries to an encryption oracle. The security bound amplification-based technique is of independent interest since the security bound amplification is not directly related to the amplification of the number of queries. These are the main technical contributions of this work. See Section 1.3 and main sections for more details.

Copy-protected functional decryption keys.

The other contributions are copy-protected functional decryption keys. We introduce the notion of single-decryptor FE (SDFE), where each functional decryption key is copy-protected. This notion can be seen as a stronger cryptographic primitive than FE with secure key leasing, as we argued in Section 1.1.

  • We define the syntax and security definitions for SDFE.

  • We achieve collusion-resistant public key SDFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} from sub-exponentially secure indistinguishability obfuscation (IO) and the sub-exponential hardness of the learning with errors problem (QLWE assumption).

First, we transform single-key PKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} into single-key SDFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} by using SDE. Then, we transform single-key SDFE 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} into collusion-resistant SDFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} by using an IO-based key bundling technique [KNT21, BNPW20]. We can instantiate SDE with IO and the QLWE assumption [CLLZ21, CV21] and single-key PKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} with PKE [SS10, GVW12].

1.3 Technical Overview

We provide a high-level overview of our techniques. Below, standard math font stands for classical algorithms and classical variables, and calligraphic font stands for quantum algorithms and quantum states.

Syntax of SKFE with secure key leasing.

We first recall a standard SKFE scheme. It consists of four algorithms (𝖲𝖾𝗍𝗎𝗉,𝖪𝖦,𝖤𝗇𝖼,𝖣𝖾𝖼)(\mathsf{Setup},\mathsf{KG},\mathsf{Enc},\mathsf{Dec}). 𝖲𝖾𝗍𝗎𝗉\mathsf{Setup} is given a security parameter 1λ1^{\lambda} and a collusion bound 1q1^{q} and generates a master secret key 𝗆𝗌𝗄\mathsf{msk}. 𝖤𝗇𝖼\mathsf{Enc} is given 𝗆𝗌𝗄\mathsf{msk} and a plaintext xx and outputs a ciphertext 𝖼𝗍\mathsf{ct}. 𝖪𝖦\mathsf{KG} is given 𝗆𝗌𝗄\mathsf{msk} and a function ff and outputs a decryption key 𝖿𝗌𝗄\mathsf{fsk} tied to ff. 𝖣𝖾𝖼\mathsf{Dec} is given 𝖿𝗌𝗄\mathsf{fsk} and 𝖼𝗍\mathsf{ct} and outputs f(x)f(x). Then, the indistinguishability-security of SKFE roughly states that any QPT adversary cannot distinguish encryptions of x0x_{0} and x1x_{1} under the existence of the encryption oracle and the key generation oracle. Here, the adversary can access the key generation oracle at most qq times and can query only a function ff such that f(x0)=f(x1)f(x_{0})=f(x_{1}).

An SKFE scheme with secure key leasing (SKFE-SKL) is a tuple of six algorithms (𝖲𝖾𝗍𝗎𝗉,𝒦𝒢,𝖤𝗇𝖼,𝒟𝒸,𝒞𝓇𝓉,𝖵𝗋𝖿𝗒)(\mathsf{Setup},\mathpzc{KG},\mathsf{Enc},\mathpzc{Dec},\allowbreak\mathpzc{Cert},\mathsf{Vrfy}), where the first four algorithms form a standard SKFE scheme except the following difference on 𝒦𝒢\mathpzc{KG}. In addition to a function ff, 𝒦𝒢\mathpzc{KG} is given an availability bound 1n1^{n} in terms of the number of ciphertexts. Also, given those inputs, 𝒦𝒢\mathpzc{KG} outputs a verification key 𝗏𝗄\mathsf{vk} together with a decryption key 𝒻𝓈𝓀\mathpzc{fsk} tied to ff encoded in a quantum state, as (𝒻𝓈𝓀,𝗏𝗄)𝒦𝒢(𝗆𝗌𝗄,𝒻,1𝓃)(\mathpzc{fsk},\mathsf{vk})\leftarrow\mathpzc{KG}(\mathsf{msk},f,1^{n}). By using 𝒞𝓇𝓉\mathpzc{Cert}, we can generate a (classical) certificate that a quantum decryption key 𝒻𝓈𝓀\mathpzc{fsk} is deleted, as 𝖼𝖾𝗋𝗍𝒞𝓇𝓉(𝒻𝓈𝓀)\mathsf{cert}\leftarrow\mathpzc{Cert}(\mathpzc{fsk}). We check the validity of certificates by using 𝗏𝗄\mathsf{vk} and 𝖵𝗋𝖿𝗒\mathsf{Vrfy}, as /𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\top/\bot\leftarrow\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert}). In addition to the decryption correctness, an SKFE-SKL scheme is required to satisfy the verification correctness that states that a correctly generated certificate is accepted, that is, =𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\top=\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert}) for (𝒻𝓈𝓀,𝗏𝗄)𝒦𝒢(𝗆𝗌𝗄,𝒻,1𝓃)(\mathpzc{fsk},\mathsf{vk})\leftarrow\mathpzc{KG}(\mathsf{msk},f,1^{n}) and 𝖼𝖾𝗋𝗍𝒞𝓇𝓉(𝒻𝓈𝓀)\mathsf{cert}\leftarrow\mathpzc{Cert}(\mathpzc{fsk}).

Security of SKFE-SKL.

The security notion of SKFE-SKL we call lessor security intuitively guarantees that if an adversary given 𝒻𝓈𝓀\mathpzc{fsk} deletes it and the generated certificate is accepted within the declared availability bound, the adversary cannot use 𝒻𝓈𝓀\mathpzc{fsk} any more. The following indistinguishability experiment formalizes this security notion. For simplicity, we focus on a selective setting where the challenge plaintext pair (x0,x1)(x_{0}^{*},x_{1}^{*}) and the collusion bound qq are fixed outside of the security experiment in this overview.

  1. 1.

    Throughout the experiment, 𝒜\mathpzc{A} can get access to the following oracles, where L𝒦𝒢L_{\mathtt{\mathpzc{KG}}} is a list that is initially empty.

    O𝖤𝗇𝖼(x)O_{\mathtt{\mathsf{Enc}}}(x):

    This is the standard encryption oracle that returns 𝖤𝗇𝖼(𝗆𝗌𝗄,x)\mathsf{Enc}(\mathsf{msk},x) given xx.

    O𝒦𝒢(f,1n)O_{\mathtt{\mathpzc{KG}}}(f,1^{n}):

    This oracle takes as input a function ff and an availability bound 1n1^{n}, generate (𝒻𝓈𝓀,𝗏𝗄)𝒦𝒢(𝗆𝗌𝗄,𝒻,1𝓃)(\mathpzc{fsk},\mathsf{vk})\leftarrow\mathpzc{KG}(\mathsf{msk},f,1^{n}), returns 𝒻𝓈𝓀\mathpzc{fsk} to 𝒜\mathpzc{A}, and adds (f,1n,𝗏𝗄,)(f,1^{n},\mathsf{vk},\bot) to L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. Differently from the standard SKFE, 𝒜\mathpzc{A} can query a function ff such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}). 𝒜\mathpzc{A} can get access to the key generation oracle at most qq times.

    O𝖵𝗋𝖿𝗒(f,𝖼𝖾𝗋𝗍)O_{\mathtt{\mathsf{Vrfy}}}(f,\mathsf{cert}):

    Also, 𝒜\mathpzc{A} can get access to the verification oracle. Intuitively, this oracle checks that 𝒜\mathpzc{A} deletes leased decryption keys correctly within the declared availability bounds. Given (f,𝖼𝖾𝗋𝗍)(f,\mathsf{cert}), it finds an entry (f,1n,𝗏𝗄,M)(f,1^{n},\mathsf{vk},M) from L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. (If there is no such entry, it returns \bot.) If =𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\top=\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert}) and the number of queries to O𝖤𝗇𝖼O_{\mathtt{\mathsf{Enc}}} at this point is less than nn, it returns \top and updates the entry into (f,1n,𝗏𝗄,)(f,1^{n},\mathsf{vk},\top). Otherwise, it returns \bot.

  2. 2.

    When 𝒜\mathpzc{A} requests the challenge ciphertext, the challenger checks if 𝒜\mathpzc{A} has correctly deleted all leased decryption keys for functions ff such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}). If so, the challenger gives the challenge ciphertext 𝖼𝗍𝖤𝗇𝖼(𝗆𝗌𝗄,x𝖼𝗈𝗂𝗇)\mathsf{ct}^{*}\leftarrow\mathsf{Enc}(\mathsf{msk},x_{\mathsf{coin}}^{*}) for random bit 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\} to 𝒜\mathpzc{A}, and otherwise the challenger output 0. Hereafter, 𝒜\mathpzc{A} is not allowed to send a function ff such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}) to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}.

  3. 3.

    𝒜\mathpzc{A} outputs a guess 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} of 𝖼𝗈𝗂𝗇\mathsf{coin}.

We say that the SKFE-SKL scheme is lessor secure if no QPT adversary can guess 𝖼𝗈𝗂𝗇\mathsf{coin} significantly better than random guessing. We see that if 𝒜\mathpzc{A} can use a decryption key after once 𝒜\mathpzc{A} deletes and the deletion certificate is accepted, 𝒜\mathpzc{A} can detect 𝖼𝗈𝗂𝗇\mathsf{coin} with high probability since 𝒜\mathpzc{A} can obtain a decryption key for ff such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}). Thus, this security notion captures the above intuition. We see that lessor security implies standard indistinguishability-security for SKFE.

We basically work with the above indistinguishability based selective security for simplicity. In Appendix B, we also provide the definitions of adaptive security and simulation based security notions and general transformations to achieve those security notions from indistinguishability based selective security.

Dynamic availability bound vs. static availability bound.

In SKFE-SKL, we can set the availability bound for each decryption key differently. We can also consider a weaker variant where we statically set the single availability bound applied to each decryption key at the setup algorithm. We call this variant SKFE with static bound secure key leasing (SKFE-sbSKL). In fact, by using a technique developed in the context of dynamic bounded collusion FE [AMVY21, GGLW21], we can generically transform SKFE-sbSKL into SKFE-SKL if the underlying SKFE-sbSKL satisfies some additional security property and efficiency requirement. For the overview of this transformation, see Section 3.2. Therefore, we below focus on how to achieve SKFE-sbSKL. For simplicity, we ignore those additional properties required for the transformation to SKFE-SKL.

SKFE-sbSKL with the availability bound 0 from certified deletion.

We start with a simple construction of an SKFE-sbSKL scheme secure for the availability bound 0 based on an SKE scheme with certified deletion [BI20, HMNY21]. The availability bound is 0 means that it is secure if an adversary deletes decryption keys without seeing any ciphertext.

SKE with certified deletion consists of five algorithms (𝖪𝖦,𝓃𝒸,𝒟𝒸,𝒟𝓁,𝖵𝗋𝖿𝗒)(\mathsf{KG},\mathpzc{Enc},\mathpzc{Dec},\mathpzc{Del},\mathsf{Vrfy}). The first three algorithms form a standard SKE scheme except that 𝓃𝒸\mathpzc{Enc} output a verification key 𝗏𝗄\mathsf{vk} together with a ciphertext encoded in a quantum state 𝒸𝓉\mathpzc{ct}. By using 𝒟𝓁\mathpzc{Del}, we can generate a (classical) certificate that 𝒸𝓉\mathpzc{ct} is deleted. The certificate is verified using 𝗏𝗄\mathsf{vk} and 𝖵𝗋𝖿𝗒\mathsf{Vrfy}. In addition to the decryption correctness, it satisfies the verification correctness that guarantees that a correctly generated certificate is accepted. The security notion roughly states that once an adversary deletes a ciphertext 𝒸𝓉\mathpzc{ct} and the generated certificate is accepted, the adversary cannot obtain any plaintext information encrypted inside 𝒸𝓉\mathpzc{ct}, even if the adversary is given the secret key after the deletion.

We now construct an SKFE-sbSKL scheme 𝗓𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{zSKFE}\textrm{-}\mathsf{sbSKL} that is secure for the availability bound 0, based on a standard SKFE scheme 𝖲𝖪𝖥𝖤=(𝖲𝖾𝗍𝗎𝗉,𝖪𝖦,𝖤𝗇𝖼,𝖣𝖾𝖼)\mathsf{SKFE}=(\mathsf{Setup},\mathsf{KG},\allowbreak\mathsf{Enc},\mathsf{Dec}) and an SKE scheme with certified deletion 𝖢𝖣𝖲𝖪𝖤=(𝖢𝖣.𝖪𝖦,𝖢𝖣.𝓃𝒸,𝖢𝖣.𝒟𝒸,𝖢𝖣.𝒟𝓁,𝖢𝖣.𝖵𝗋𝖿𝗒)\mathsf{CDSKE}=(\mathsf{CD}.\mathsf{KG},\mathsf{CD}.\mathpzc{Enc},\allowbreak\mathsf{CD}.\mathpzc{Dec},\mathsf{CD}.\mathpzc{Del},\mathsf{CD}.\mathsf{Vrfy}). In the setup of 𝗓𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{zSKFE}\textrm{-}\mathsf{sbSKL}, we generate 𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1q)\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q}) and 𝖼𝖽.𝗌𝗄𝖢𝖣.𝖪𝖦(1λ)\mathsf{cd}.\mathsf{sk}\leftarrow\mathsf{CD}.\mathsf{KG}(1^{\lambda}), and the master secret key of 𝗓𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{zSKFE}\textrm{-}\mathsf{sbSKL} is set to 𝗓𝗆𝗌𝗄=(𝗆𝗌𝗄,𝖼𝖽.𝗌𝗄)\mathsf{zmsk}=(\mathsf{msk},\mathsf{cd}.\mathsf{sk}). To generate a decryption key for ff, we generate a decryption key for ff by 𝖲𝖪𝖥𝖤\mathsf{SKFE} as 𝖿𝗌𝗄𝖪𝖦(𝗆𝗌𝗄,f)\mathsf{fsk}\leftarrow\mathsf{KG}(\mathsf{msk},f) and encrypt it by 𝖢𝖣𝖲𝖪𝖤\mathsf{CDSKE} as (𝖼𝖽.𝒸𝓉,𝗏𝗄)𝖢𝖣.𝓃𝒸(𝖼𝖽.𝗌𝗄,𝖿𝗌𝗄)(\mathsf{cd}.\mathpzc{ct},\mathsf{vk})\leftarrow\mathsf{CD}.\mathpzc{Enc}(\mathsf{cd}.\mathsf{sk},\mathsf{fsk}). The resulting decryption key is 𝓏𝒻𝓈𝓀𝖼𝖽.𝒸𝓉\mathpzc{zfsk}\coloneqq\mathsf{cd}.\mathpzc{ct} and the corresponding verification key is 𝗏𝗄\mathsf{vk}. To encrypt a plaintext xx, we just encrypt it by 𝖲𝖪𝖥𝖤\mathsf{SKFE} as 𝖼𝗍𝖤𝗇𝖼(𝗆𝗌𝗄,x)\mathsf{ct}\leftarrow\mathsf{Enc}(\mathsf{msk},x) and append 𝖼𝖽.𝗌𝗄\mathsf{cd}.\mathsf{sk} contained in 𝗓𝗆𝗌𝗄\mathsf{zmsk}, as 𝗓𝖼𝗍(𝖼𝗍,𝖼𝖽.𝗌𝗄)\mathsf{zct}\coloneqq(\mathsf{ct},\mathsf{cd}.\mathsf{sk}). To decrypt 𝗓𝖼𝗍\mathsf{zct} with 𝓏𝒻𝓈𝓀\mathpzc{zfsk}, we first retrieve 𝖿𝗌𝗄\mathsf{fsk} from 𝖼𝖽.𝖼𝗍\mathsf{cd}.\mathsf{ct} and 𝖼𝖽.𝗌𝗄\mathsf{cd}.\mathsf{sk}, and compute f(x)𝖣𝖾𝖼(𝖿𝗌𝗄,𝖼𝗍)f(x)\leftarrow\mathsf{Dec}(\mathsf{fsk},\mathsf{ct}). The certificate generation and verification are simply defined as those of 𝖢𝖣𝖲𝖪𝖤\mathsf{CDSKE} since 𝓏𝒻𝓈𝓀\mathpzc{zfsk} is a ciphertext of 𝖢𝖣𝖲𝖪𝖤\mathsf{CDSKE}.

The security of 𝗓𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{zSKFE}\textrm{-}\mathsf{sbSKL} is easily analyzed. Let (x0,x1)(x_{0}^{*},x_{1}^{*}) be the challenge plaintext pair. When an adversary 𝒜\mathpzc{A} queries ff to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}, 𝒜\mathpzc{A} is given 𝓏𝒻𝓈𝓀𝖼𝖽.𝒸𝓉\mathpzc{zfsk}\coloneqq\mathsf{cd}.\mathpzc{ct}, where 𝖿𝗌𝗄𝖪𝖦(𝗆𝗌𝗄,f)\mathsf{fsk}\leftarrow\mathsf{KG}(\mathsf{msk},f) and (𝖼𝖽.𝒸𝓉,𝗏𝗄)𝖢𝖣.𝓃𝒸(𝖼𝖽.𝗌𝗄,𝖿𝗌𝗄)(\mathsf{cd}.\mathpzc{ct},\mathsf{vk})\leftarrow\mathsf{CD}.\mathpzc{Enc}(\mathsf{cd}.\mathsf{sk},\mathsf{fsk}). If f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), 𝒜\mathpzc{A} is required to delete 𝓏𝒻𝓈𝓀\mathpzc{zfsk} without seeing any ciphertext. This means that 𝒜\mathpzc{A} cannot obtain 𝖼𝖽.𝗌𝗄\mathsf{cd}.\mathsf{sk} before 𝓏𝒻𝓈𝓀\mathpzc{zfsk} is deleted. Then, from the security of 𝖢𝖣𝖲𝖪𝖤\mathsf{CDSKE}, 𝒜\mathpzc{A} cannot obtain any information of 𝖿𝗌𝗄\mathsf{fsk}. This implies that 𝒜\mathpzc{A} can obtain a decryption key of 𝖲𝖪𝖥𝖤\mathsf{SKFE} only for a function ff such that f(x0)=f(x1)f(x_{0}^{*})=f(x_{1}^{*}), and thus the lessor security of 𝗓𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{zSKFE}\textrm{-}\mathsf{sbSKL} follows form the security of 𝖲𝖪𝖥𝖤\mathsf{SKFE}.

How to amplify the availability bound?

We now explain how to amplify the availability bound from 0 to any polynomial nn. One possible solution is to rely on the techniques for bounded collusion FE [GVW12, AV19]. Although the bounded collusion techniques can be used to amplify “11-bounded security” to “poly-bounded security”, it is not clear how to use it starting from “0-bounded security”. For more detailed discussion on this point, see Remark 3.7. Therefore, we use a different technique from the existing bounded collusion FE. At a high level, we reduce the task of amplifying the availability bound to the task of amplifying the security bound, which has been studied in the context of standard FE [AJL+19, JKMS20].

We observe that we can obtain an SKFE-sbSKL scheme with availability bound nn for any nn that is secure with only inverse polynomial probability by just using many instances of 𝗓𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{zSKFE}\textrm{-}\mathsf{sbSKL} in parallel. Concretely, suppose we use N=αnN=\alpha n instances of 𝗓𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{zSKFE}\textrm{-}\mathsf{sbSKL} to achieve a scheme with availability bound nn, where α\alpha\in\mathbb{N}. To generate a decryption key for ff, we generate (𝓏𝒻𝓈𝓀𝒿,𝗏𝗄𝒿)𝓏𝒦𝒢(𝗓𝗆𝗌𝗄𝒿,𝒻)(\mathpzc{zfsk}_{j},\mathsf{vk}_{j})\leftarrow\mathpzc{zKG}(\mathsf{zmsk}_{j},f) for every j[N]j\in[N], and set the resulting decryption key as (𝓏𝒻𝓈𝓀𝒿)𝒿[𝒩](\mathpzc{zfsk}_{j})_{j\in[N]} and the corresponding verification key as (𝗏𝗄j)j[N](\mathsf{vk}_{j})_{j\in[N]}. To encrypt xx, we randomly choose j[N]j\leftarrow[N], generate 𝗓𝖼𝗍j𝗓𝖤𝗇𝖼(𝗓𝗆𝗌𝗄j,x)\mathsf{zct}_{j}\leftarrow\mathsf{zEnc}(\mathsf{zmsk}_{j},x), and set the resulting ciphertext as (j,𝗓𝖼𝗍j)(j,\mathsf{zct}_{j}). To decrypt this ciphertext with (𝓏𝒻𝓈𝓀𝒿)𝒿[𝒩](\mathpzc{zfsk}_{j})_{j\in[N]}, we just compute f(x)𝓏𝒟𝒸(𝓏𝒻𝓈𝓀𝒿,𝗓𝖼𝗍𝒿)f(x)\leftarrow\mathpzc{zDec}(\mathpzc{zfsk}_{j},\mathsf{zct}_{j}). The certification generation and verification are done by performing them under all NN instances. The security of this construction is analyzed as follows. The probability that the jj^{*} chosen when generating the challenge ciphertext collides with some of nn indices j1,,jnj_{1},\cdots,j_{n} used by the first nn calls of the encryption oracle, is at most n/N=1/αn/N=1/\alpha. If such a collision does not happen, we can use the security of jj^{*}-th instance of 𝗓𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{zSKFE}\textrm{-}\mathsf{sbSKL} to prove the security of this construction. Therefore, this construction is secure with probability roughly 11/α1-1/\alpha (denoted by 1/α1/\alpha-secure scheme).

Thus, all we have to do is to convert an SKFE-sbSKL scheme with inverse polynomial security into one with negligible security. As stated above, such security amplification has been studied for standard FE. In this work, we adopt the amplification technique using homomorphic secret sharing (HSS) [AJL+19, JKMS20].

Amplification using HSS.

In this overview, we describe our construction using HSS that requires the LWE assumption with super-polynomial modulus to give a high-level intuition. However, our actual construction uses a primitive called set homomorphic secret sharing (SetHSS) [JKMS20], which is a weak form of HSS and can be based on OWFs. 444The definition of HSS provided below is not standard. We modify the definition to be close to SetHSS. Note that HSS defined below can be constructed from multi-key fully homomorphic encryption with simulatable partial decryption property [MW16]. See Section 5 for our construction based on OWFs.

An HSS scheme consists of three algorithms (𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾,𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾,𝖣𝖾𝖼𝗈𝖽𝖾)(\mathsf{InpEncode},\allowbreak\mathsf{FuncEncode},\allowbreak\mathsf{Decode}). 𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾\mathsf{InpEncode} is given a security parameter 1λ1^{\lambda}, a number 1m1^{m}, and an input xx, and outputs mm input shares (si)i[m](s_{i})_{i\in[m]}. 𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾\mathsf{FuncEncode} is given a security parameter 1λ1^{\lambda}, a number 1m1^{m}, and a function ff, and outputs mm function shares (fi)i[m](f_{i})_{i\in[m]}. 𝖣𝖾𝖼𝗈𝖽𝖾\mathsf{Decode} takes a set of evaluations of function shares on their respective input shares (fi(si))i[m](f_{i}(s_{i}))_{i\in[m]}, and outputs a value f(x)f(x). Then, the security property of an HSS scheme roughly guarantees that for any (i,x0,x1)(i^{*},x_{0}^{*},x_{1}^{*}), given a set of input shares (si)i[m]{i}(s_{i})_{i\in[m]\setminus\{i^{*}\}} for some ii^{*}, an adversary cannot detect from which of the challenge inputs they are generated, under the existence of function encode oracle that is given ff such that f(x0)=f(x1)f(x_{0}^{*})=f(x_{1}^{*}) and returns (fi(si))i[m](f_{i}(s_{i}))_{i\in[m]}.

We describe SKFE-sbSKL scheme 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} with the availability bound n1n\geq 1 of our choice using a HSS scheme 𝖧𝖲𝖲=(𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾,𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾,𝖣𝖾𝖼𝗈𝖽𝖾)\mathsf{HSS}=(\mathsf{InpEncode},\allowbreak\mathsf{FuncEncode},\mathsf{Decode}). In the setup of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}, we first set up 1/21/2-secure SKFE-sbSKL scheme 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}^{\prime} with the availability bound nn. This is done by parallelizing 2n2n instances of 𝗓𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{zSKFE}\textrm{-}\mathsf{sbSKL} as explained before. We generate mm master secret keys 𝗆𝗌𝗄1,,𝗆𝗌𝗄m\mathsf{msk}_{1},\cdots,\mathsf{msk}_{m} of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}^{\prime}. Then, to generate a decryption key for ff by 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}, we first generate (fi)i[m]𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾(1λ,1m,f)(f_{i})_{i\in[m]}\leftarrow\mathsf{FuncEncode}(1^{\lambda},1^{m},f), and generate a decryption key 𝒻𝓈𝓀𝒾\mathpzc{fsk}_{i} tied to fif_{i} under 𝗆𝗌𝗄i\mathsf{msk}_{i} for each i[m]i\in[m]. To encrypt xx by 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}, we first generate (si)i[m]𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(1λ,1m,x)(s_{i})_{i\in[m]}\leftarrow\mathsf{InpEncode}(1^{\lambda},1^{m},x) and generate a ciphertext 𝖼𝗍i\mathsf{ct}_{i} of sis_{i} under 𝗆𝗌𝗄i\mathsf{msk}_{i} for each i[m]i\in[m]. The certification generation and verification are done by performing those of 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL}^{\prime} for all of the mm instances. When decrypting the ciphertext (𝖼𝗍i)i[m](\mathsf{ct}_{i})_{i\in[m]} by (𝒻𝓈𝓀𝒾)𝒾[𝓂](\mathpzc{fsk}_{i})_{i\in[m]}, we can obtain fi(si)f_{i}(s_{i}) by decrypting 𝖼𝗍i\mathsf{ct}_{i} with 𝒻𝓈𝓀𝒾\mathpzc{fsk}_{i} for every i[m]i\in[m]. By combining (fi(si))i[m](f_{i}(s_{i}))_{i\in[m]} using 𝖣𝖾𝖼𝗈𝖽𝖾\mathsf{Decode}, we can obtain f(x)f(x).

The lessor security of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} can be proved as follows. Each of mm instances of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}^{\prime} is secure independently with probability 1/21/2. Thus, there is at least one secure instance without probability 1/2m1/2^{m}, which is negligible by setting m=ω(logλ)m=\omega(\log\lambda). Suppose ii^{*}-th instance is a secure instance. Let (x0,x1)(x_{0}^{*},x_{1}^{*}) be the challenge plaintext pair, and let (si)i[m]𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(1λ,1m,x𝖼𝗈𝗂𝗇)(s^{*}_{i})_{i\in[m]}\leftarrow\mathsf{InpEncode}(1^{\lambda},1^{m},x^{*}_{\mathsf{coin}}) for 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\}. In the security experiment, from the security of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}^{\prime} under 𝗆𝗌𝗄i\mathsf{msk}_{i^{*}}, an adversary cannot obtain the information of sis_{i^{*}} except for its evaluation on function shares for a function ff queried to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}} that satisfies that f(x0)=f(x1)f(x_{0}^{*})=f(x_{1}^{*}). Especially, from the security of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}^{\prime} under 𝗆𝗌𝗄i\mathsf{msk}_{i^{*}}, the adversary cannot obtain an evaluation of sis_{i^{*}} on function shares for a function ff such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), though 𝒜\mathpzc{A} can query such a function to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}. Then, we see that the lessor security of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} can be reduced to the security of 𝖧𝖲𝖲\mathsf{HSS}. 555Actual construction and security proof needs to use a technique called the trojan method [ABSV15]. We ignore the issue here for simplicity.

In the actual construction, we use SetHSS instead of HSS, as stated before. Also, in the main body, we abstract the parallelized 𝗓𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{zSKFE}\textrm{-}\mathsf{sbSKL} as index-based SKFE-sbSKL. This makes the security proof of our construction using SetHSS simple. Moreover, in the actual construction of an index-based SKFE-sbSKL, we bundle the parallelized instances of 𝗓𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{zSKFE}\textrm{-}\mathsf{sbSKL} using a PRF. This modification is necessary to achieve the efficiency required for the above transformation into SKFE-SKL.

Goyal et al. [CGO21] use a similar technique using HSS in a different setting (private simultaneous message protocols). However, their technique relies on the LWE assumption unlike ours.

Single decryptor PKFE.

In this work, we also define the notion of single decryptor PKFE, which is PKFE whose functional decryption key is copy-protected. The definition is a natural extension of SDE (PKE with copy-protected decryption keys). An adversary 𝒜\mathpzc{A} tries to copy a target functional decryption key 𝓈𝓀𝒻\mathpzc{sk}_{f^{\ast}}. More specifically, 𝒜\mathpzc{A} is given 𝓈𝓀𝒻\mathpzc{sk}_{f^{\ast}} and outputs two possibly entangled quantum distinguishers 𝒟1\mathpzc{D}_{1} and 𝒟2\mathpzc{D}_{2} and two plaintexts (x0,x1)(x_{0},x_{1}) such that f(x0)f(x1)f^{\ast}(x_{0})\neq f^{\ast}(x_{1}). If 𝒟1\mathpzc{D}_{1} or 𝒟2\mathpzc{D}_{2} cannot distinguish a given ciphertext is encryption of x0x_{0} or x1x_{1}, 𝓈𝓀𝒻\mathpzc{sk}_{f^{\ast}} is copy-protected.666In the security definition of SDE, quantum decryptors try to recover the entire plaintext [CLLZ21]. We extend the definition because quantum decryptors are not sufficient for using SDFE as a building block. See Section 7 for detail. If both 𝒟1\mathpzc{D}_{1} and 𝒟2\mathpzc{D}_{2} have 𝓈𝓀𝒻\mathpzc{sk}_{f^{\ast}}, they can trivially distinguish the challenge ciphertext. Thus, the definition guarantees copy-protection security. We provide a collusion-resistant single-decryptor PKFE scheme, where adversaries obtain polynomially many functional decryption keys, based on IO.

We first show that a single-key single-decryptor PKFE can be constructed from a single-key standard PKFE scheme and SDE scheme. The construction is simple nested encryption. Namely, when encrypting a plaintext xx, we first encrypt it by the standard PKFE scheme and then encrypt the ciphertext by the SDE scheme. The secret key of the SDE scheme is included in the functional decryption key of the resulting single-decryptor PKFE scheme. Although a PKFE functional decryption key can be copied, the SDE decryption key cannot be copied and adversaries cannot break the security of PKFE. This is because we need to run the SDE decryption algorithm before we run the PKFE decryption algorithm.

The security notion for SDE by Coladangelo et al. [CLLZ21] is not sufficient for our purpose since SDE plaintexts are ciphertexts of the standard PKFE in the construction. We need to extend the security notion for SDE to prove the security of this construction because we need to handle randomized messages (the PKFE encryption is a randomized algorithm). Roughly speaking, this new security notion guarantees that the security of SDE holds for plaintexts of the form g(x;r)g(x;r), where gg and xx respectively are a function and an input chosen by an adversary and rr is a random coin chosen by the experiment. We can observe that the SDE scheme proposed by Coladangelo et al. [CLLZ21] based on IO satisfies this security notion. Then, by setting gg as the encryption circuit of the standard PKFE, the security of the single-key single-decryptor PKFE scheme above can be immediately reduced to the security of the SDE scheme. We also extend adversarial quantum decryptors, which try to output an entire plaintext, to adversarial quantum distinguishers, which try to guess a 11-bit coin used to generate a ciphertext. We need this extension to use SDE as a building block. It is easy to observe the SDE scheme by Coladangelo et al. [CLLZ21] is secure even against quantum distinguishers.

Once we obtain a single-key single-decryptor PKFE scheme, we can transform it into a collusion-resistant single-decryptor PKFE scheme by again using IO. This transformation is based on one from a single-key standard PKFE scheme into a collusion-resistant standard PKFE scheme [BNPW20, KNT21]. The idea is as follows. We need to generate a fresh instance of the single-key scheme above for each random tag and bundle (unbounded) polynomially many instances to achieve collusion-resistance. We use IO to bundle multiple instances of single-key SDFE. More specifically, a public key is an obfuscated circuit of the following setup circuit. The setup circuit takes a public tag τ\tau as input, generates a key pair (𝗉𝗄τ,𝗆𝗌𝗄τ)(\mathsf{pk}_{\tau},\mathsf{msk}_{\tau}) of the single-key SDFE scheme using PRF value 𝖥𝖪(τ)\mathsf{F}_{\mathsf{K}}(\tau) as randomness, and outputs only 𝗉𝗄τ\mathsf{pk}_{\tau}. The master secret key is the PRF key 𝖪\mathsf{K}. We can generate a functional decryption key for ff by choosing a random tag τ\tau and generating a functional decryption key 𝓈𝓀𝒻,τ\mathpzc{sk}_{f,\tau} under 𝗆𝗌𝗄τ\mathsf{msk}_{\tau}. A functional decryption key of our collusion-resistant scheme consists of (τ,𝓈𝓀𝒻,τ)(\tau,\mathpzc{sk}_{f,\tau}). A ciphertext is an obfuscated circuit of the following encryption circuit, where a plaintext xx is hardwired. The encryption circuit takes a public tag τ\tau, generates 𝗉𝗄τ\mathsf{pk}_{\tau} by using the public key explained above, and outputs a ciphertext of xx under 𝗉𝗄τ\mathsf{pk}_{\tau}. Due to this mechanism, only one functional decryption key 𝓈𝓀𝒻,τ\mathpzc{sk}_{f,\tau} under 𝗆𝗌𝗄τ\mathsf{msk}_{\tau} is issued for each τ\tau, but we can generate polynomially many functional decryption keys by using many tags. If we use a different tag τ\tau^{\prime}, an independent key pair (𝗉𝗄τ,𝗆𝗌𝗄τ)(\mathsf{pk}_{\tau^{\prime}},\mathsf{msk}_{\tau^{\prime}}) is generated and it is useless for another instance under (𝗉𝗄τ,𝗆𝗌𝗄τ)(\mathsf{pk}_{\tau},\mathsf{msk}_{\tau}). The IO security guarantees that the information about 𝖪\mathsf{K} (and 𝗆𝗌𝗄τ\mathsf{msk}_{\tau}) is hidden.777We use puncturable PRFs and the puncturing technique here as the standard technique for cryptographic primitives based on IO [SW21]. Thus, we can reduce the collusion-resistance to the single-key security of the underlying single-decryptor PKFE. Note that we need to consider super-polynomially many hybrid games to complete the proof since the tag space size must be super-polynomial to treat unbounded polynomially many tags. This is the reason why we need the sub-exponential security for building blocks.

1.4 More on Related Work

Secure software leasing.

Ananth and La Place [AL21] achieve secure software leasing for 𝗌𝗎𝖻𝖤𝖵𝖲\mathsf{subEVS} from the QLWE assumption and IO. Kitagawa, Nishimaki, and Yamakawa [KNY21] achieve secure software leasing for PRFs and 𝗌𝗎𝖻𝖤𝖵𝖲\mathsf{subEVS} only from the QLWE (that is, without IO). Broadbent, Jeffery, Lord, Podder, and Sundaram [BJL+21] achieve secure software leasing for 𝗌𝗎𝖻𝖤𝖵𝖲\mathsf{subEVS} without assumptions. Coladangelo, Majenz, and Poremba [CMP20] also achieve secure software leasing for 𝗌𝗎𝖻𝖤𝖵𝖲\mathsf{subEVS} in the quantum random oracle (QROM) model (without assumptions).

In secure software leasing, we force adversaries to run pirate software by an honest evaluation algorithm denoted by 𝓊𝓃\mathpzc{Run} [AL21]. An honest evaluation algorithm verifies the format of software when software is executed, and adversaries cannot adopt arbitrary strategies for creating pirate software. Aaronson, Liu, Liu, Zhandry, and Zhang [ALL+21] introduce copy-detection, which is essentially the same notion as secure software leasing. Although a check algorithm verifies returned software, there is no honest evaluation algorithm, and adversaries can adopt arbitrary strategies in the copy-detection setting. Aaronson et al. [ALL+21] achieve copy-detection for PRFs, PKE, and signatures from IO and standard cryptographic assumptions. Those cryptographic functionalities are much weaker than FE. Moreover, we need IO to achieve security against adversaries that adopt any strategy to execute pirate software. Secure software leasing by Coladangelo et al. [CMP20] is also secure against such arbitrary adversaries, but their construction relies on QROM, and its functionality is severely limited.

Certified deletion.

Broadbent and Islam [BI20] present the notion of quantum encryption with certified deletion. They achieve one-time SKE with certified deletion without assumptions. Hiroka, Morimae, Nishimaki, and Yamakawa [HMNY21] extend the notion to reusable SKE, PKE, and ABE with certified deletion, and instantiate them with standard SKE, PKE, and IO and OWFs, respectively. Our FE with secure key leasing can also be seen as certified deletion for functional decryption keys.

Copy-protection.

Aaronson [Aar09] achieves copy-protection for arbitrary unlearnable Boolean functions relative to a quantum oracle, and presents two heuristic copy-protection schemes for point functions. Aaronson et al. [ALL+21] achieve quantum copy-protection for all unlearnable functions by using classical oracles. Georgiou and Zhandry [GZ20] present the notion of SDE and instantiate it with one-shot signatures [AGKZ20] and extractable witness encryption (WE) [GKP+13]. They also introduce the notion of broadcast encryption with unclonable decryption and splittable ABE, which can be seen as copy-protected variants of broadcast encryption and ABE, respectively. They instantiate splittable ABE with the same tools as those for SDE. They instantiate broadcast encryption with unclonable decryption with tokenized signatures [BS17], extractable WE, and collision-resistant hash functions. Coladangelo et al. [CLLZ21] achieve quantum copy-protection for PRFs and SDE from IO and OWFs, the QLWE assumption, and the strong monogamy-of-entanglement conjecture. Later, Culf and Vidick prove that the strong monogamy-of-entanglement conjecture is true without any assumption [CV21]. Those cryptographic functionalities are weaker than FE, as in the case of secure software leasing. Most of those works rely on magical oracles or knowledge-type assumptions such as the existence of extractable WE, which is implausible [GGHW17]. Only the constructions by Coladangelo et al. [CLLZ21, CV21] do not rely on such strong tools. However, note that there is no provably secure post-quantum IO from well-founded assumptions so far.888There are some candidates [BGMZ18, CHVW19, AP20, DQV+21]. The known IO constructions from well-founded assumptions [JLS21, JLS22] are vulnerable against quantum adversaries.

Ben-David and Sattath [BS17] present the notion of tokenized signatures, where we can generate a delegated signing token from a signing key. A signing token enables a user to sign one and only one message. They instantiate it with virtual black-box obfuscation [BGI+12]. Amos, Georgiou, Kiayias, and Zhandry present the notion of one-shot signatures, where adversaries cannot generate two valid signatures for different two messages even under an adversarially generated verification key. They instantiate it with classical oracles, which can be seen as an idealized virtual black-box obfuscation. Those are copy-protected variants of signatures. Relationships between (copy-protected) FE and them are not known so far.

Functional encryption.

FE has been extensively studied since Boneh, Sahai, and Waters [BSW11] formally defined its notion. Although there are many works on FE, we focus on FE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} that are closely related to our work in this paper.

Sahai and Seyalioglu [SS10] present the first (selectively secure) single-key PKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} from PKE. Gorbunov, Vaikuntanathan, and Wee [GVW12] present transformations from (adaptively secure) single-key PKFE for 𝖭𝖢1\mathsf{NC}^{1} into (adaptively secure) bounded collusion-resistant PKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} by using pseudorandom generators (PRGs) in 𝖭𝖢1\mathsf{NC}^{1}. The transformation also converts single-key and many-ciphertext SKFE for 𝖭𝖢1\mathsf{NC}^{1} into bounded collusion-resistant and many-ciphertext SKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly}. They also show that we can achieve adaptively secure single-key PKFE (resp. SKFE) for 𝖭𝖢1\mathsf{NC}^{1} from PKE (resp. OWFs). Ananth, Brakerski, Segev, and Vaikuntanathan [ABSV15] observe that we can invert the roles of the functions and plaintexts in SKFE by using the function-privacy of SKFE [BS18], and obtain collusion-resistant and bounded many-ciphertext SKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} from OWFs by using the transformations. Later, Ananth and Vaikuntanathan [AV19] improve the assumptions (remove PRGs in 𝖭𝖢1\mathsf{NC}^{1}) for the transformation and achieve the optimal ciphertext size (in the asymptotic sense). These transformations [GVW12, AV19] run NN independent copies of a single-key FE scheme and encrypt the views of some NN-party multi-party computation (MPC) protocol. Agrawal and Rosen [AR17] construct bounded collusion-resistant PKFE for 𝖭𝖢1\mathsf{NC}^{1} by using FE for inner-product [ABDP15, ALS16] and the homomorphic property of some encryption scheme [BV11].999We can upgrade FE for 𝖭𝖢1\mathsf{NC}^{1} to FE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} by using randomized encoding [ABSV15]. Their construction supports arithmetic circuits. Agrawal, Maitra, Vempati, and Yamada [AMVY21] and Garg, Goyal, Lu, and Waters [GGLW21] concurrently and independently present the notion of dynamic bounded collusion-resistant FE and how to achieve it from identity-based encryption (IBE). In the dynamic bounded collusion setting, the setup algorithm of FE does not depend on the number of key queries, and only the encryption algorithm of FE depends on it.

Security amplification is transforming an ϵ\epsilon-secure cryptographic scheme into a ν\nu-secure one, where ϵ(0,1)\epsilon\in(0,1) is a constant and ν\nu is a negligible function. Ananth, Jain, Lin, Matt, and Sahai [AJL+19] propose security amplification techniques for standard FE. Their techniques are based on multi-key homomorphic encryption, which can be instantiated with the LWE assumption. Jain, Korb, Manohar, and Sahai [JKMS20] also propose how to amplify the security of standard FE by using SetHSS, which can be instantiated with OWFs.

IO for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} is necessary and sufficient for collusion-resistant FE (for 𝖭𝖢1\mathsf{NC}^{1}) up to sub-exponential security loss [GGH+16, BV18, AJ15, AJS15, KNT22]. Jain, Lin, and Sahai [JLS21, JLS22] achieve the first IO (and collusion-resistant FE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly}) from well-founded assumptions. However, they are not post-quantum secure since the constructions heavily rely on cryptographic bilinear maps.

Revocation mechanisms have been extensively studied, especially in the context of broadcast encryption [NP01, NNL01].101010We omit references since there are too many previous works on broadcast encryption and trace-and-revoke systems. Nishimaki et al. [NWZ16] introduce revocable FE to achieve a trace-and-revoke system with flexible identities. They achieve the first revocable FE by using IO and OWFs. We need to manage a revocation list and update ciphertexts to revoke a user.

2 Preliminaries

Notations and conventions.

In this paper, standard math or sans serif font stands for classical algorithms (e.g., CC or 𝖦𝖾𝗇\mathsf{Gen}) and classical variables (e.g., xx or 𝗉𝗄\mathsf{pk}). Calligraphic font stands for quantum algorithms (e.g., 𝒢𝓃\mathpzc{Gen}) and calligraphic font and/or the bracket notation for (mixed) quantum states (e.g., 𝓆\mathpzc{q} or |ψ\ket{\psi}). For strings xx and yy, xyx\|y denotes the concatenation of xx and yy. Let 𝟎\boldsymbol{0} denote a string consisting of an appropriate number of 0. Let [][\ell] denote the set of integers {1,,}\{1,\cdots,\ell\}, λ\lambda denote a security parameter, and yzy\coloneqq z denote that yy is set, defined, or substituted by zz.

In this paper, for a finite set XX and a distribution DD, xXx\leftarrow X denotes selecting an element from XX uniformly at random, xDx\leftarrow D denotes sampling an element xx according to DD. Let y𝖠(x)y\leftarrow\mathsf{A}(x) and y𝒜(𝓍)y\leftarrow\mathpzc{A}(\mathpzc{x}) denote assigning to yy the output of a probabilistic or deterministic algorithm 𝖠\mathsf{A} and a quantum algorithm 𝒜\mathpzc{A} on an input xx and 𝓍\mathpzc{x}, respectively. When we explicitly show that 𝖠\mathsf{A} uses randomness rr, we write y𝖠(x;r)y\leftarrow\mathsf{A}(x;r). PPT and QPT algorithms stand for probabilistic polynomial-time algorithms and polynomial-time quantum algorithms, respectively. Let 𝗇𝖾𝗀𝗅{\mathsf{negl}} denote a negligible function.

2.1 Standard Cryptographic Tools

Definition 2.1 (Pseudorandom Function).

Let {𝖥K:{0,1}1{0,1}2K{0,1}λ}\{\mathsf{F}_{K}:\{0,1\}^{\ell_{1}}\rightarrow\allowbreak\{0,1\}^{\ell_{2}}\mid K\in\{0,1\}^{\lambda}\} be a family of polynomially computable functions, where 1\ell_{1} and 2\ell_{2} are some polynomials of λ\lambda. We say that 𝖥\mathsf{F} is a pseudorandom function (PRF) family if, for any PPT distinguisher 𝒜\mathcal{A}, there exists 𝗇𝖾𝗀𝗅(){\mathsf{negl}}(\cdot) such that it holds that

|Pr[𝒜𝖥𝒦()(1λ)=1𝒦{0,1}λ]Pr[𝒜𝖱()(1λ)=1𝖱𝒰]|𝗇𝖾𝗀𝗅(λ),\displaystyle\absolutevalue{\Pr[\mathpzc{A}^{\mathsf{F}_{K}(\cdot)}(1^{\lambda})=1\mid K\leftarrow\{0,1\}^{\lambda}]-\Pr[\mathpzc{A}^{\mathsf{R}(\cdot)}(1^{\lambda})=1\mid\mathsf{R}\leftarrow\mathcal{U}]}\leq{\mathsf{negl}}(\lambda), (1)

where 𝒰\mathcal{U} is the set of all functions from {0,1}1\{0,1\}^{\ell_{1}} to {0,1}2\{0,1\}^{\ell_{2}}.

Theorem 2.2 ([GGM86]).

If one-way functions exist, then for all efficiently computable functions n(λ)n(\lambda) and m(λ)m(\lambda), there exists a PRF that maps n(λ)n(\lambda) bits to m(λ)m(\lambda) bits.

Definition 2.3 (Secret Key Encryption).

An SKE scheme 𝖲𝖪𝖤\mathsf{SKE} is a two tuple (𝖤,𝖣)(\mathsf{E},\mathsf{D}) of PPT algorithms.

  • The encryption algorithm 𝖤\mathsf{E}, given a key K{0,1}λK\in\{0,1\}^{\lambda} and a plaintext mm\in\mathcal{M}, outputs a ciphertext 𝖼𝗍\mathsf{ct}, where \mathcal{M} is the plaintext space of 𝖲𝖪𝖤\mathsf{SKE}.

  • The decryption algorithm 𝖣\mathsf{D}, given a key KK and a ciphertext 𝖼𝗍\mathsf{ct}, outputs a plaintext m~{}\tilde{m}\in\{\bot\}\cup\mathcal{M}. This algorithm is deterministic.

Correctness:

We require 𝖣(K,𝖤(K,m))=m\mathsf{D}(K,\mathsf{E}(K,m))=m for every mm\in\mathcal{M} and key K{0,1}λK\in\{0,1\}^{\lambda}.

CPA Security:

We define the following experiment 𝖤𝗑𝗉𝗍𝒜,𝖲𝖪𝖤𝖼𝗉𝖺(1λ,𝖼𝗈𝗂𝗇)\mathsf{Expt}_{\mathpzc{A},\mathsf{SKE}}^{\mathsf{cpa}}(1^{\lambda},\mathsf{coin}) between a challenger and an adversary 𝒜\mathpzc{A}.

  1. 1.

    The challenger generates K{0,1}λK\leftarrow\{0,1\}^{\lambda}. Then, the challenger sends 1λ1^{\lambda} to 𝒜\mathpzc{A}.

  2. 2.

    𝒜\mathpzc{A} may make polynomially many encryption queries adaptively. 𝒜\mathpzc{A} sends (m0,m1)×(m_{0},m_{1})\in\mathcal{M}\times\mathcal{M} to the challenger. Then, the challenger returns 𝖼𝗍𝖤(K,m𝖼𝗈𝗂𝗇)\mathsf{ct}\leftarrow\mathsf{E}(K,m_{\mathsf{coin}}).

  3. 3.

    𝒜\mathpzc{A} outputs 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}^{\prime}\in\{0,1\}.

We say that 𝖲𝖪𝖤\mathsf{SKE} is CPA secure if for any QPT adversary 𝒜\mathpzc{A}, we have

𝖠𝖽𝗏𝖲𝖪𝖤,𝒜𝖼𝗉𝖺(λ)=|Pr[𝖤𝗑𝗉𝗍𝒜,𝖲𝖪𝖤𝖼𝗉𝖺(1λ,0)=1]Pr[𝖤𝗑𝗉𝗍𝒜,𝖲𝖪𝖤𝖼𝗉𝖺(1λ,1)=1]|𝗇𝖾𝗀𝗅(λ).\mathsf{Adv}_{\mathsf{SKE},\mathpzc{A}}^{\mathsf{cpa}}(\lambda)=\absolutevalue{\Pr[\mathsf{Expt}_{\mathpzc{A},\mathsf{SKE}}^{\mathsf{cpa}}(1^{\lambda},0)=1]-\Pr[\mathsf{Expt}_{\mathpzc{A},\mathsf{SKE}}^{\mathsf{cpa}}(1^{\lambda},1)=1]}\leq{\mathsf{negl}}(\lambda).
Definition 2.4 (Ciphertext Pseudorandomness for SKE).

Let {0,1}\{0,1\}^{\ell} be the ciphertext space of 𝖲𝖪𝖤\mathsf{SKE}. We define the following experiment 𝖤𝗑𝗉𝒜,𝖲𝖪𝖤𝗉𝗋-𝖼𝗍(1λ,𝖼𝗈𝗂𝗇)\mathsf{Exp}_{\mathpzc{A},\mathsf{SKE}}^{\mathsf{pr}\mbox{-}\mathsf{ct}}(1^{\lambda},\mathsf{coin}) between a challenger and an adversary 𝒜\mathpzc{A}.

  1. 1.

    The challenger generates K{0,1}λK\leftarrow\{0,1\}^{\lambda}. Then, the challenger sends 1λ1^{\lambda} to 𝒜\mathpzc{A}.

  2. 2.

    𝒜\mathpzc{A} may make polynomially many encryption queries adaptively. 𝒜\mathpzc{A} sends mm\in\mathcal{M} to the challenger. Then, the challenger returns 𝖼𝗍𝖤(K,m)\mathsf{ct}\leftarrow\mathsf{E}(K,m) if 𝖼𝗈𝗂𝗇=0\mathsf{coin}=0, otherwise 𝖼𝗍{0,1}\mathsf{ct}\leftarrow\{0,1\}^{\ell}.

  3. 3.

    𝒜\mathpzc{A} outputs 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}^{\prime}\in\{0,1\}.

We say that 𝖲𝖪𝖤\mathsf{SKE} is pseudorandom-secure if for any QPT adversary 𝒜\mathpzc{A}, we have

𝖠𝖽𝗏𝖲𝖪𝖤,𝒜𝗉𝗋-𝖼𝗍(λ)=|Pr[𝖤𝗑𝗉𝒜,𝖲𝖪𝖤𝗉𝗋-𝖼𝗍(1λ,0)=1]Pr[𝖤𝗑𝗉𝒜,𝖲𝖪𝖤𝗉𝗋-𝖼𝗍(1λ,1)=1]|𝗇𝖾𝗀𝗅(λ).\mathsf{Adv}_{\mathsf{SKE},\mathpzc{A}}^{\mathsf{pr}\mbox{-}\mathsf{ct}}(\lambda)=\absolutevalue{\Pr[\mathsf{Exp}_{\mathpzc{A},\mathsf{SKE}}^{\mathsf{pr}\mbox{-}\mathsf{ct}}(1^{\lambda},0)=1]-\Pr[\mathsf{Exp}_{\mathpzc{A},\mathsf{SKE}}^{\mathsf{pr}\mbox{-}\mathsf{ct}}(1^{\lambda},1)=1]}\leq{\mathsf{negl}}(\lambda).
Theorem 2.5.

If OWFs exist, there exists a pseudorandom-secure SKE scheme.

Definition 2.6 (Secret-Key Functional Encryption).

An SKFE scheme 𝖲𝖪𝖥𝖤\mathsf{SKFE} is a tuple of four PPT algorithms (𝖲𝖾𝗍𝗎𝗉,𝖪𝖦,𝖤𝗇𝖼,𝖣𝖾𝖼)(\mathsf{Setup},\mathsf{KG},\mathsf{Enc},\mathsf{Dec}). Below, let 𝒳\mathcal{X}, 𝒴\mathcal{Y}, and \mathcal{F} be the plaintext, output, and function spaces 𝖲𝖪𝖥𝖤\mathsf{SKFE}, respectively.

𝖲𝖾𝗍𝗎𝗉(1λ,1q)𝗆𝗌𝗄\mathsf{Setup}(1^{\lambda},1^{q})\rightarrow\mathsf{msk}:

The setup algorithm takes a security parameter 1λ1^{\lambda} and a collusion bound 1q1^{q}, and outputs a master secret key 𝗆𝗌𝗄\mathsf{msk}.

𝖪𝖦(𝗆𝗌𝗄,f)𝗌𝗄f\mathsf{KG}(\mathsf{msk},f)\rightarrow\mathsf{sk}_{f}:

The key generation algorithm takes a master secret key 𝗆𝗌𝗄\mathsf{msk} and a function ff\in\mathcal{F}, and outputs a functional decryption key 𝗌𝗄f\mathsf{sk}_{f}.

𝖤𝗇𝖼(𝗆𝗌𝗄,x)𝖼𝗍\mathsf{Enc}(\mathsf{msk},x)\rightarrow\mathsf{ct}:

The encryption algorithm takes a master secret key 𝗆𝗌𝗄\mathsf{msk} and a plaintext x𝒳x\in\mathcal{X}, and outputs a ciphertext 𝖼𝗍\mathsf{ct}.

𝖣𝖾𝖼(𝗌𝗄f,𝖼𝗍)y\mathsf{Dec}(\mathsf{sk}_{f},\mathsf{ct})\rightarrow y:

The decryption algorithm takes a functional decryption key 𝗌𝗄f\mathsf{sk}_{f} and a ciphertext 𝖼𝗍\mathsf{ct}, and outputs y{}𝒴y\in\{\bot\}\cup\mathcal{Y}.

Correctness:

We require that for every x𝒳x\in\mathcal{X}, ff\in\mathcal{F}, qq\in\mathbb{N}, we have that

Pr[𝖣𝖾𝖼(𝗌𝗄f,𝖼𝗍)=f(x)|𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1q),𝗌𝗄f𝖪𝖦(𝗆𝗌𝗄,f),𝖼𝗍𝖤𝗇𝖼(𝗆𝗌𝗄,x)]=1𝗇𝖾𝗀𝗅(λ).\Pr\left[\mathsf{Dec}(\mathsf{sk}_{f},\mathsf{ct})=f(x)\ \middle|\begin{array}[]{rl}&\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q}),\\ &\mathsf{sk}_{f}\leftarrow\mathsf{KG}(\mathsf{msk},f),\\ &\mathsf{ct}\leftarrow\mathsf{Enc}(\mathsf{msk},x)\end{array}\right]=1-{\mathsf{negl}}(\lambda).
Definition 2.7 (Selective Indistinguishability-Security).

We say that 𝖲𝖪𝖥𝖤\mathsf{SKFE} is a selectively indistinguishability-secure SKFE scheme for 𝒳,𝒴\mathcal{X},\mathcal{Y}, and \mathcal{F}, if it satisfies the following requirement, formalized from the experiment 𝖤𝗑𝗉𝒜,𝖲𝖪𝖥𝖤𝗌𝖾𝗅-𝗂𝗇𝖽(1λ,𝖼𝗈𝗂𝗇)\mathsf{Exp}_{\mathpzc{A},\mathsf{SKFE}}^{\mathsf{sel}\mbox{-}\mathsf{ind}}(1^{\lambda},\mathsf{coin}) between an adversary 𝒜\mathpzc{A} and a challenger:

  1. 1.

    At the beginning, 𝒜\mathpzc{A} sends (1q,x0,x1)(1^{q},x_{0}^{*},x_{1}^{*}) to the challenger. The challenger runs 𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1q)\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q}). Also, the challenger generates 𝖼𝗍𝖤𝗇𝖼(𝗆𝗌𝗄,x𝖼𝗈𝗂𝗇)\mathsf{ct}^{*}\leftarrow\mathsf{Enc}(\mathsf{msk},x_{\mathsf{coin}}^{*}) and sends 𝖼𝗍\mathsf{ct}^{*} to 𝒜\mathpzc{A}. Throughout the experiment, 𝒜\mathpzc{A} can access the following oracles.

    O𝖤𝗇𝖼(x)O_{\mathtt{\mathsf{Enc}}}(x):

    Given xx, it returns 𝖤𝗇𝖼(𝗆𝗌𝗄,x)\mathsf{Enc}(\mathsf{msk},x).

    O𝖪𝖦(f)O_{\mathtt{\mathsf{KG}}}(f):

    Given ff, if f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), it returns \bot. Otherwise, it returns 𝖪𝖦(𝗆𝗌𝗄,f)\mathsf{KG}(\mathsf{msk},f). 𝒜\mathpzc{A} can access this oracle at most qq times.

  2. 2.

    𝒜\mathpzc{A} outputs a guess 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} for 𝖼𝗈𝗂𝗇\mathsf{coin}. The challenger outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} as the final output of the experiment.

We say that 𝖲𝖪𝖥𝖤\mathsf{SKFE} is selectively indistinguishability-secure if, for any QPT 𝒜\mathpzc{A}, it holds that

𝖠𝖽𝗏𝖲𝖪𝖥𝖤,𝒜𝗌𝖾𝗅-𝗂𝗇𝖽(λ)|Pr[𝖤𝗑𝗉𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜𝗌𝖾𝗅-𝗂𝗇𝖽(1λ,0)=1]Pr[𝖤𝗑𝗉𝖲𝖪𝖥𝖤,𝒜𝗌𝖾𝗅-𝗂𝗇𝖽(1λ,1)=1]|𝗇𝖾𝗀𝗅(λ).\displaystyle\mathsf{Adv}_{\mathsf{SKFE},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{ind}}(\lambda)\coloneqq\absolutevalue{\Pr[\mathsf{Exp}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{ind}}(1^{\lambda},0)=1]-\Pr[\mathsf{Exp}_{\mathsf{SKFE},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{ind}}(1^{\lambda},1)=1]}\leq{\mathsf{negl}}(\lambda). (2)

It is easy to see that we can consider the adaptively indistinguishability-secure variant as in Definition 7.15.

Theorem 2.8 ([GVW12]).

If there exist OWFs, then there exists selectively indistinguishability-secure SKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly}.

2.2 Advanced Tools

We present the definitions for reusable SKE with certified deletion introduced by Hiroka et al. [HMNY21]

Definition 2.9 (Reusable SKE with Certified Deletion (Syntax)).

A secret key encryption scheme with certified deletion is a tuple of quantum algorithms (𝖪𝖦,𝓃𝒸,𝒟𝒸,𝒟𝓁,𝖵𝗋𝖿𝗒)(\mathsf{KG},\mathpzc{Enc},\mathpzc{Dec},\mathpzc{Del},\mathsf{Vrfy}) with plaintext space \mathcal{M} and key space 𝒦\mathcal{K}.

𝖪𝖦(1λ)𝗌𝗄\mathsf{KG}(1^{\lambda})\rightarrow\mathsf{sk}:

The key generation algorithm takes as input the security parameter 1λ1^{\lambda} and outputs a secret key 𝗌𝗄𝒦\mathsf{sk}\in\mathcal{K}.

𝓃𝒸(𝗌𝗄,𝓂)(𝗏𝗄,𝒸𝓉)\mathpzc{Enc}(\mathsf{sk},m)\rightarrow(\mathsf{vk},\mathpzc{ct}):

The encryption algorithm takes as input 𝗌𝗄\mathsf{sk} and a plaintext mm\in\mathcal{M} and outputs a verification key 𝗏𝗄\mathsf{vk} and a ciphertext 𝒸𝓉\mathpzc{ct}.

𝒟𝒸(𝗌𝗄,𝒸𝓉)𝓂\mathpzc{Dec}(\mathsf{sk},\mathpzc{ct})\rightarrow m^{\prime}:

The decryption algorithm takes as input 𝗌𝗄\mathsf{sk} and 𝒸𝓉\mathpzc{ct} and outputs a plaintext mm^{\prime}\in\mathcal{M} or \bot.

𝒟𝓁(𝒸𝓉)𝖼𝖾𝗋𝗍\mathpzc{Del}(\mathpzc{ct})\rightarrow\mathsf{cert}:

The deletion algorithm takes as input 𝒸𝓉\mathpzc{ct} and outputs a certification 𝖼𝖾𝗋𝗍\mathsf{cert}.

𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍) or \mathsf{Vrfy}(\mathsf{vk},\mathsf{cert})\rightarrow\top\mbox{ or }\bot:

The verification algorithm takes 𝗏𝗄\mathsf{vk} and 𝖼𝖾𝗋𝗍\mathsf{cert} and outputs \top or \bot.

Decryption correctness:

There exists a negligible function 𝗇𝖾𝗀𝗅{\mathsf{negl}} such that for any mm\in\mathcal{M},

Pr[𝒟𝒸(𝗌𝗄,𝒸𝓉)=𝓂|𝗌𝗄𝖪𝖦(1λ)(𝗏𝗄,𝒸𝓉)𝓃𝒸(𝗌𝗄,𝓂)]=1𝗇𝖾𝗀𝗅(λ).\displaystyle\Pr\left[\mathpzc{Dec}(\mathsf{sk},\mathpzc{ct})=m\ \middle|\begin{array}[]{ll}\mathsf{sk}\leftarrow\mathsf{KG}(1^{\lambda})\\ (\mathsf{vk},\mathpzc{ct})\leftarrow\mathpzc{Enc}(\mathsf{sk},m)\end{array}\right]=1-{\mathsf{negl}}(\lambda). (5)
Verification correctness:

There exists a negligible function 𝗇𝖾𝗀𝗅{\mathsf{negl}} such that for any mm\in\mathcal{M},

Pr[𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)=|𝗌𝗄𝖪𝖦(1λ)(𝗏𝗄,𝒸𝓉)𝓃𝒸(𝗌𝗄,𝓂)𝖼𝖾𝗋𝗍𝒟𝓁(𝒸𝓉)]=1𝗇𝖾𝗀𝗅(λ).\displaystyle\Pr\left[\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert})=\top\ \middle|\begin{array}[]{ll}\mathsf{sk}\leftarrow\mathsf{KG}(1^{\lambda})\\ (\mathsf{vk},\mathpzc{ct})\leftarrow\mathpzc{Enc}(\mathsf{sk},m)\\ \mathsf{cert}\leftarrow\mathpzc{Del}(\mathpzc{ct})\end{array}\right]=1-{\mathsf{negl}}(\lambda). (9)
Definition 2.10 (IND-CPA-CD Security for Reusable SKE with Certified Deletion).

Let Σ=(𝖪𝖦,𝓃𝒸,𝒟𝒸,𝒟𝓁,𝖵𝗋𝖿𝗒)\Sigma=(\mathsf{KG},\mathpzc{Enc},\mathpzc{Dec},\mathpzc{Del},\mathsf{Vrfy}) be a secret key encryption with certified deletion. We consider the following security experiment 𝖤𝗑𝗉Σ,𝒜𝗌𝗄-𝖼𝖾𝗋𝗍-𝖽𝖾𝗅(λ,b)\mathsf{Exp}_{\Sigma,\mathpzc{A}}^{\mathsf{sk}\mbox{-}\mathsf{cert}\mbox{-}\mathsf{del}}(\lambda,b).

  1. 1.

    The challenger computes 𝗌𝗄𝖪𝖦(1λ)\mathsf{sk}\leftarrow\mathsf{KG}(1^{\lambda}).

  2. 2.

    𝒜\mathpzc{A} sends an encryption query mm to the challenger. The challenger computes (𝗏𝗄,𝒸𝓉)𝓃𝒸(𝗌𝗄,𝓂)(\mathsf{vk},\mathpzc{ct})\leftarrow\mathpzc{Enc}(\mathsf{sk},m) to 𝒜\mathpzc{A} and returns (𝗏𝗄,𝒸𝓉)(\mathsf{vk},\mathpzc{ct}) to 𝒜\mathpzc{A}. This process can be repeated polynomially many times.

  3. 3.

    𝒜\mathpzc{A} sends (m0,m1)2(m_{0},m_{1})\in\mathcal{M}^{2} to the challenger.

  4. 4.

    The challenger computes (𝗏𝗄b,𝒸𝓉𝒷)𝓃𝒸(𝗌𝗄,𝓂𝒷)(\mathsf{vk}_{b},\mathpzc{ct}_{b})\leftarrow\mathpzc{Enc}(\mathsf{sk},m_{b}) and sends 𝒸𝓉𝒷\mathpzc{ct}_{b} to 𝒜\mathpzc{A}.

  5. 5.

    Again, 𝒜\mathpzc{A} can send encryption queries.

  6. 6.

    At some point, 𝒜\mathpzc{A} sends 𝖼𝖾𝗋𝗍\mathsf{cert} to the challenger.

  7. 7.

    The challenger computes 𝖵𝗋𝖿𝗒(𝗏𝗄b,𝖼𝖾𝗋𝗍)\mathsf{Vrfy}(\mathsf{vk}_{b},\mathsf{cert}). If the output is \bot, the challenger sends \bot to 𝒜\mathpzc{A}. If the output is \top, the challenger sends 𝗌𝗄\mathsf{sk} to 𝒜\mathpzc{A}.

  8. 8.

    If the challenger sends \bot in the previous item, 𝒜\mathpzc{A} can send encryption queries again.

  9. 9.

    𝒜\mathpzc{A} outputs b{0,1}b^{\prime}\in\{0,1\}.

We say that Σ\Sigma is IND-CPA-CD secure if for any QPT 𝒜\mathpzc{A}, it holds that

𝖠𝖽𝗏Σ,𝒜𝗌𝗄-𝖼𝖾𝗋𝗍-𝖽𝖾𝗅(λ)|Pr[𝖤𝗑𝗉Σ,𝒜𝗌𝗄-𝖼𝖾𝗋𝗍-𝖽𝖾𝗅(λ,0)=1]Pr[𝖤𝗑𝗉Σ,𝒜𝗌𝗄-𝖼𝖾𝗋𝗍-𝖽𝖾𝗅(λ,1)=1]|𝗇𝖾𝗀𝗅(λ).\displaystyle\mathsf{Adv}_{\Sigma,\mathpzc{A}}^{\mathsf{sk}\mbox{-}\mathsf{cert}\mbox{-}\mathsf{del}}(\lambda)\coloneqq\absolutevalue{\Pr[\mathsf{Exp}_{\Sigma,\mathpzc{A}}^{\mathsf{sk}\mbox{-}\mathsf{cert}\mbox{-}\mathsf{del}}(\lambda,0)=1]-\Pr[\mathsf{Exp}_{\Sigma,\mathpzc{A}}^{\mathsf{sk}\mbox{-}\mathsf{cert}\mbox{-}\mathsf{del}}(\lambda,1)=1]}\leq{\mathsf{negl}}(\lambda). (10)

We introduce an additional property for certificates.

Definition 2.11 (Unique Certificate).

We say that an SKE scheme with certified deletion has the unique certificate property if there is at most one certification 𝖼𝖾𝗋𝗍\mathsf{cert} for each 𝗏𝗄\mathsf{vk} output by 𝖤𝗇𝖼\mathsf{Enc} such that =𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\top=\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert}).

Known constructions of SKE (and PKE) with certified deletion based on BB84 states has the unique certificate property.

Theorem 2.12 ([HMNY21]).

If there exist OWFs, there exists an IND-CPA-CD secure SKE scheme that has the unique certificate property.

We introduce a variant of IND-CPA-CD security where the adversary can send many verification queries, called indistinguishability against Chosen Verification Attacks (CVA). We use this security notion to achieve SKFE with secure key leasing in Section 4.

Definition 2.13 (IND-CVA-CD Security for Reusable SKE with Certified Deletion).

Let Σ=(𝖪𝖦,𝓃𝒸,𝒟𝒸,𝒟𝓁,𝖵𝗋𝖿𝗒)\Sigma=(\mathsf{KG},\mathpzc{Enc},\mathpzc{Dec},\mathpzc{Del},\mathsf{Vrfy}) be a secret key encryption with certified deletion. We consider the following security experiment 𝖤𝗑𝗉Σ,𝒜𝗌𝗄-𝖼𝖾𝗋𝗍-𝗏𝗈(λ,b)\mathsf{Exp}_{\Sigma,\mathpzc{A}}^{\mathsf{sk}\mbox{-}\mathsf{cert}\mbox{-}\mathsf{vo}}(\lambda,b).

  1. 1.

    The challenger computes 𝗌𝗄𝖪𝖦(1λ)\mathsf{sk}\leftarrow\mathsf{KG}(1^{\lambda}).

  2. 2.

    𝒜\mathpzc{A} sends an encryption query mm to the challenger. The challenger computes (𝗏𝗄,𝖼𝗍)𝓃𝒸(𝗌𝗄,𝓂)(\mathsf{vk},\mathsf{ct})\leftarrow\mathpzc{Enc}(\mathsf{sk},m) to 𝒜\mathpzc{A} and returns (𝗏𝗄,𝖼𝗍)(\mathsf{vk},\mathsf{ct}) to 𝒜\mathpzc{A}. This process can be repeated polynomially many times.

  3. 3.

    𝒜\mathpzc{A} sends (m0,m1)2(m_{0},m_{1})\in\mathcal{M}^{2} to the challenger.

  4. 4.

    The challenger computes (𝗏𝗄b,𝒸𝓉𝒷)𝓃𝒸(𝗌𝗄,𝓂𝒷)(\mathsf{vk}_{b},\mathpzc{ct}_{b})\leftarrow\mathpzc{Enc}(\mathsf{sk},m_{b}) and sends 𝒸𝓉𝒷\mathpzc{ct}_{b} to 𝒜\mathpzc{A}.

  5. 5.

    Again, 𝒜\mathpzc{A} can send encryption queries. 𝒜\mathpzc{A} can also send a verification query 𝖼𝖾𝗋𝗍\mathsf{cert} to the challenger. The challenger returns 𝗌𝗄\mathsf{sk} if =𝖵𝗋𝖿𝗒(𝗏𝗄b,𝖼𝖾𝗋𝗍)\top=\mathsf{Vrfy}(\mathsf{vk}_{b},\mathsf{cert}), \bot otherwise. This process can be repeated polynomially many times.

  6. 6.

    𝒜\mathpzc{A} outputs b{0,1}b^{\prime}\in\{0,1\}.

We say that Σ\Sigma is IND-CVA-CD secure if for any QPT 𝒜\mathpzc{A}, it holds that

𝖠𝖽𝗏Σ,𝒜𝗌𝗄-𝖼𝖾𝗋𝗍-𝗏𝗈(λ)|Pr[𝖤𝗑𝗉Σ,𝒜𝗌𝗄-𝖼𝖾𝗋𝗍-𝗏𝗈(λ,0)=1]Pr[𝖤𝗑𝗉Σ,𝒜𝗌𝗄-𝖼𝖾𝗋𝗍-𝗏𝗈(λ,1)=1]|𝗇𝖾𝗀𝗅(λ).\displaystyle\mathsf{Adv}_{\Sigma,\mathpzc{A}}^{\mathsf{sk}\mbox{-}\mathsf{cert}\mbox{-}\mathsf{vo}}(\lambda)\coloneqq\absolutevalue{\Pr[\mathsf{Exp}_{\Sigma,\mathpzc{A}}^{\mathsf{sk}\mbox{-}\mathsf{cert}\mbox{-}\mathsf{vo}}(\lambda,0)=1]-\Pr[\mathsf{Exp}_{\Sigma,\mathpzc{A}}^{\mathsf{sk}\mbox{-}\mathsf{cert}\mbox{-}\mathsf{vo}}(\lambda,1)=1]}\leq{\mathsf{negl}}(\lambda). (11)

Known IND-CPA-CD secure SKE schemes satisfy IND-CVA-CD security thanks to the following theorem since they satisfy Definition 2.11.

Theorem 2.14.

If an SKE scheme is IND-CPA-CD secure and has the unique certificate property, then it also satisfies IND-CVA-CD security.

Proof.

We construct an adversary \mathpzc{B} for IND-CPA-CD by using an adversary 𝒜\mathpzc{A} for IND-CVA-CD as follows.

  1. 1.

    At the beginning, the adversary 𝒜\mathpzc{A} is fixed, so the number of the verification query by 𝒜\mathpzc{A} is also fixed. We denote the number by qq.

  2. 2.

    When 𝒜\mathpzc{A} sends an encryption query mm, \mathpzc{B} sends mm to its challenger, receives (𝗏𝗄,𝒸𝓉)𝓃𝒸(𝗌𝗄,𝓂)(\mathsf{vk},\mathpzc{ct})\leftarrow\mathpzc{Enc}(\mathsf{sk},m), and passes (𝗏𝗄,𝒸𝓉)(\mathsf{vk},\mathpzc{ct}) to 𝒜\mathpzc{A}.

  3. 3.

    When 𝒜\mathpzc{A} sends (m0,m1)(m_{0},m_{1}), \mathpzc{B} sends (m0,m1)(m_{0},m_{1}) to its challenger, receives 𝒸𝓉𝒷\mathpzc{ct}_{b}, passes 𝒸𝓉𝒷\mathpzc{ct}_{b} to 𝒜\mathpzc{A}.

  4. 4.

    Then, \mathpzc{B} guesses an index i[q+1]i^{\ast}\leftarrow[q+1].

  5. 5.

    When 𝒜\mathpzc{A} sends 𝖼𝖾𝗋𝗍i\mathsf{cert}_{i} as the ii-th verification query, if i<ii<i^{\ast}, \mathpzc{B} returns \bot. When 𝒜\mathpzc{A} sends 𝖼𝖾𝗋𝗍i\mathsf{cert}_{i^{\ast}} as the ii^{\ast}-th verification query, if there exits ii such that 𝖼𝖾𝗋𝗍i=𝖼𝖾𝗋𝗍i\mathsf{cert}_{i}=\mathsf{cert}_{i^{\ast}}, \mathpzc{B} aborts. Otherwise, \mathpzc{B} forwards 𝖼𝖾𝗋𝗍i\mathsf{cert}_{i^{\ast}} to its challenger. If \mathpzc{B} receives \bot, \mathpzc{B} aborts. If \mathpzc{B} receives 𝗌𝗄\mathsf{sk}, then \mathpzc{B} passes 𝗌𝗄\mathsf{sk} to 𝒜\mathpzc{A}. After \mathpzc{B} receives 𝗌𝗄\mathsf{sk}, if a query 𝖼𝖾𝗋𝗍i=𝖼𝖾𝗋𝗍i\mathsf{cert}_{i}=\mathsf{cert}_{i^{\ast}}, \mathpzc{B} answers 𝗌𝗄\mathsf{sk}, otherwise \bot.

  6. 6.

    \mathpzc{B} outputs what 𝒜\mathpzc{A} outputs.

Since we consider unique certificate SKE with certified deletion, if \mathcal{B} receives 𝗌𝗄\mathsf{sk} from its challenger, it is the only one correct certificate under 𝗏𝗄b\mathsf{vk}_{b}. Hence, \mathpzc{B} can correctly simulate the IND-CVA-CD game with probability 1/(q+1)1/(q+1) (Note that i=q+1i^{\ast}=q+1 means 𝒜\mathpzc{A} did not output a correct certificate). Therefore, we obtain 𝖠𝖽𝗏Σ,𝒜𝗌𝗄-𝖼𝖾𝗋𝗍-𝖽𝖾𝗅(λ)=1q+1𝖠𝖽𝗏Σ,𝒜𝗌𝗄-𝖼𝖾𝗋𝗍-𝗏𝗈(λ)\mathsf{Adv}_{\Sigma,\mathpzc{A}}^{\mathsf{sk}\mbox{-}\mathsf{cert}\mbox{-}\mathsf{del}}(\lambda)=\frac{1}{q+1}\mathsf{Adv}_{\Sigma,\mathpzc{A}}^{\mathsf{sk}\mbox{-}\mathsf{cert}\mbox{-}\mathsf{vo}}(\lambda), and the proof completes.   

Definition 2.15 (Set Homomorphic Secret Sharing).

A set homomorphic secret sharing scheme 𝖲𝖾𝗍𝖧𝖲𝖲\mathsf{SetHSS} consists of three algorithms (𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾,𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾,𝖣𝖾𝖼𝗈𝖽𝖾)(\mathsf{InpEncode},\mathsf{FuncEncode},\mathsf{Decode}). Below, we let 𝒳\mathcal{X}, 𝒴\mathcal{Y}, and \mathcal{F} be the input, output, and function spaces of 𝖲𝖾𝗍𝖧𝖲𝖲\mathsf{SetHSS}, respectively.

𝖲𝖾𝗍𝖦𝖾𝗇(1λ)𝗉𝖺𝗋𝖺𝗆𝗌(p,,(Ti)i[m])\mathsf{SetGen}(1^{\lambda})\rightarrow\mathsf{params}\coloneqq(p,\ell,(T_{i})_{i\in[m]}):

The set generation algorithm takes as input a security parameter, and outputs parameters pp and \ell, and a collection of mm sets (Ti)i[m](T_{i})_{i\in[m]}, where each set Ti[]T_{i}\subseteq[\ell].

𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,x)(si)i[m]\mathsf{InpEncode}(\mathsf{params},x)\rightarrow(s_{i})_{i\in[m]}:

The input encoding algorithm takes as input 𝗉𝖺𝗋𝖺𝗆𝗌\mathsf{params} output by 𝖲𝖾𝗍𝖦𝖾𝗇\mathsf{SetGen} and an input x𝒳x\in\mathcal{X}, and outputs a set of input shares (si)i[m](s_{i})_{i\in[m]}.

𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,f)(fi)i[m]\mathsf{FuncEncode}(\mathsf{params},f)\rightarrow(f_{i})_{i\in[m]}:

The function encoding algorithm takes as input 𝗉𝖺𝗋𝖺𝗆𝗌\mathsf{params} output by 𝖲𝖾𝗍𝖦𝖾𝗇\mathsf{SetGen} and a function ff\in\mathcal{F}, and outputs a set of function shares (fi)i[m](f_{i})_{i\in[m]}.

𝖣𝖾𝖼𝗈𝖽𝖾((fi(si))i[m])y\mathsf{Decode}((f_{i}(s_{i}))_{i\in[m]})\rightarrow y:

The decoding algorithm takes as input a set of evaluations of function shares on their respective input shares (fi(si))i[m](f_{i}(s_{i}))_{i\in[m]} and outputs a value y𝒴y\in\mathcal{Y}.

Correctness:

We require that for every x𝒳x\in\mathcal{X}, ff\in\mathcal{F}, we have that

Pr[𝖣𝖾𝖼𝗈𝖽𝖾((fi(si))i[m])f(x)|𝗉𝖺𝗋𝖺𝗆𝗌=(p,,(Ti)i[m])𝖲𝖾𝗍𝖦𝖾𝗇(1λ),(si)i[m]𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,x),(fi)i[m]𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,f)]=𝗇𝖾𝗀𝗅(λ).\Pr\left[\mathsf{Decode}((f_{i}(s_{i}))_{i\in[m]})\neq f(x)\ \middle|\begin{array}[]{rl}&\mathsf{params}=(p,\ell,(T_{i})_{i\in[m]})\leftarrow\mathsf{SetGen}(1^{\lambda}),\\ &(s_{i})_{i\in[m]}\leftarrow\mathsf{InpEncode}(\mathsf{params},x),\\ &(f_{i})_{i\in[m]}\leftarrow\mathsf{FuncEncode}(\mathsf{params},f)\end{array}\right]={\mathsf{negl}}(\lambda).
Existence of Unmarked Element:

Let 𝗉𝖺𝗋𝖺𝗆𝗌=(p,,(Ti)i[m])𝖲𝖾𝗍𝖦𝖾𝗇(1λ)\mathsf{params}=(p,\ell,(T_{i})_{i\in[m]})\leftarrow\mathsf{SetGen}(1^{\lambda}). Suppose we randomly generate a set S[m]S\subseteq[m] so that each i[m]i\in[m] is independently included in SS with probability at most pp. Then, without negligible probability, there exists e[]e\in[\ell] such that eiSTie\notin\bigcup_{i\in S}T_{i}.

Selective Indistinguishability-Security:

Consider the following experiment 𝖤𝗑𝗉𝒜,𝖲𝖾𝗍𝖧𝖲𝖲𝗌𝖾𝗅-𝗂𝗇𝖽(1λ,𝖼𝗈𝗂𝗇)\mathsf{Exp}_{\mathpzc{A},\mathsf{SetHSS}}^{\mathsf{sel}\mbox{-}\mathsf{ind}}(1^{\lambda},\mathsf{coin}) between an adversary 𝒜\mathpzc{A} and a challenger:

  1. 1.

    The challenger generates 𝗉𝖺𝗋𝖺𝗆𝗌=(p,,(Ti)i[m])𝖲𝖾𝗍𝖦𝖾𝗇(1λ)\mathsf{params}=(p,\ell,(T_{i})_{i\in[m]})\leftarrow\mathsf{SetGen}(1^{\lambda}) and sends 𝗉𝖺𝗋𝖺𝗆𝗌\mathsf{params} to 𝒜\mathpzc{A}. 𝒜\mathpzc{A} sends (e,x0,x1)(e^{*},x_{0}^{*},x_{1}^{*}) to the challenger, where e[]e^{*}\in[\ell]. The challenger runs (si)i[m]𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,x𝖼𝗈𝗂𝗇)(s_{i})_{i\in[m]}\leftarrow\mathsf{InpEncode}(\mathsf{params},x_{\mathsf{coin}}) and sends (si)i[m]e(s_{i})_{i\in[m]_{e^{*}\notin}} to 𝒜\mathpzc{A}, where [m]e[m]_{e^{*}\notin} denotes the subset of [m][m] consisting of ii such that eTie^{*}\notin T_{i}. 𝒜\mathpzc{A} can access the following oracle.

    O𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾(f)O_{\mathtt{\mathsf{FuncEncode}}}(f):

    Given ff, if f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), it returns \bot. Otherwise, it generates (fi)i[m]𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,f)(f_{i})_{i\in[m]}\leftarrow\mathsf{FuncEncode}(\mathsf{params},f) and returns (fi,fi(si))i[m](f_{i},f_{i}(s_{i}))_{i\in[m]}.

  2. 2.

    𝒜\mathpzc{A} outputs a guess 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} for 𝖼𝗈𝗂𝗇\mathsf{coin}. The challenger outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} as the final output of the experiment.

We say that 𝖲𝖾𝗍𝖧𝖲𝖲\mathsf{SetHSS} is selectively indistinguishability-secure if, for any QPT 𝒜\mathpzc{A}, it holds that

𝖠𝖽𝗏𝖲𝖾𝗍𝖧𝖲𝖲,𝒜𝗌𝖾𝗅-𝗂𝗇𝖽(λ)|Pr[𝖤𝗑𝗉𝖲𝖾𝗍𝖧𝖲𝖲,𝒜𝗌𝖾𝗅-𝗂𝗇𝖽(1λ,0)=1]Pr[𝖤𝗑𝗉𝖲𝖾𝗍𝖧𝖲𝖲,𝒜𝗌𝖾𝗅-𝗂𝗇𝖽(1λ,0)=1]|𝗇𝖾𝗀𝗅(λ).\displaystyle\mathsf{Adv}_{\mathsf{SetHSS},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{ind}}(\lambda)\coloneqq\absolutevalue{\Pr[\mathsf{Exp}_{\mathsf{SetHSS},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{ind}}(1^{\lambda},0)=1]-\Pr[\mathsf{Exp}_{\mathsf{SetHSS},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{ind}}(1^{\lambda},0)=1]}\leq{\mathsf{negl}}(\lambda). (12)
Theorem 2.16 ([JKMS20]).

If there exist OWFs, there exists a set homomorphic secret sharing.

The above definition of SetHSS is different from the original one by Jain et al. [JKMS20] in that the original definition does not have the set generation algorithm and does not require the existence of unmarked element property. Jain et al. defined SetHSS so that it works for any collection of sets. Then, Jain et al. separately introduced the set generation algorithm and properties of it, which perfectly match the security bound amplification for FE. We can obtain Theorem 2.16 from  [JKMS20, Theorem 5.3, Lemma 6.1 and 6.2, in eprint ver.] and the parmeter setting provided in the proof of  [JKMS20, Theorem 8.1 in eprint ver.]. In their parameter setting, p=1/poly(λ)p=1/{\mathrm{poly}}(\lambda), =λ\ell=\lambda, and m=polylog(λ)m={\mathrm{polylog}}(\lambda).

3 Definition of SKFE with Secure Key Leasing

We introduce the definition of SKFE with secure key leasing and its variants.

3.1 SKFE with Secure Key Leasing

We first define SKFE with secure key leasing (SKFE-SKL).

Definition 3.1 (SKFE with Secure Key Leasing).

An SKFE-SKL scheme 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL} is a tuple of six algorithms (𝖲𝖾𝗍𝗎𝗉,𝒦𝒢,𝖤𝗇𝖼,𝒟𝒸,𝒞𝓇𝓉,𝖵𝗋𝖿𝗒)(\mathsf{Setup},\mathpzc{KG},\mathsf{Enc},\mathpzc{Dec},\mathpzc{Cert},\mathsf{Vrfy}). Below, let 𝒳\mathcal{X}, 𝒴\mathcal{Y}, and \mathcal{F} be the plaintext, output, and function spaces of 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL}, respectively.

𝖲𝖾𝗍𝗎𝗉(1λ,1q)𝗆𝗌𝗄\mathsf{Setup}(1^{\lambda},1^{q})\rightarrow\mathsf{msk}:

The setup algorithm takes a security parameter 1λ1^{\lambda} and a collusion bound 1q1^{q}, and outputs a master secret key 𝗆𝗌𝗄\mathsf{msk}.

𝒦𝒢(𝗆𝗌𝗄,𝒻,1𝓃)(𝒻𝓈𝓀,𝗏𝗄)\mathpzc{KG}(\mathsf{msk},f,1^{n})\rightarrow(\mathpzc{fsk},\mathsf{vk}):

The key generation algorithm takes a master secret key 𝗆𝗌𝗄\mathsf{msk}, a function ff\in\mathcal{F}, and an availability bound 1n1^{n}, and outputs a functional decryption key 𝒻𝓈𝓀\mathpzc{fsk} and a verification key 𝗏𝗄\mathsf{vk}.

𝖤𝗇𝖼(𝗆𝗌𝗄,x)𝖼𝗍\mathsf{Enc}(\mathsf{msk},x)\rightarrow\mathsf{ct}:

The encryption algorithm takes a master secret key 𝗆𝗌𝗄\mathsf{msk} and a plaintext x𝒳x\in\mathcal{X}, and outputs a ciphertext 𝖼𝗍\mathsf{ct}.

𝒟𝒸(𝒻𝓈𝓀,𝖼𝗍)𝓍~\mathpzc{Dec}(\mathpzc{fsk},\mathsf{ct})\rightarrow\widetilde{x}:

The decryption algorithm takes a functional decryption key 𝒻𝓈𝓀\mathpzc{fsk} and a ciphertext 𝖼𝗍\mathsf{ct}, and outputs a value x~\tilde{x}.

𝒞𝓇𝓉(𝒻𝓈𝓀)𝖼𝖾𝗋𝗍\mathpzc{Cert}(\mathpzc{fsk})\rightarrow\mathsf{cert}:

The certification algorithm takes a function decryption key 𝒻𝓈𝓀\mathpzc{fsk}, and outputs a classical string 𝖼𝖾𝗋𝗍\mathsf{cert}.

𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)/\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert})\rightarrow\top/\bot:

The certification-verification algorithm takes a verification key 𝗏𝗄\mathsf{vk} and a string 𝖼𝖾𝗋𝗍\mathsf{cert}, and outputs \top or \bot.

Decryption correctness:

For every x𝒳x\in\mathcal{X}, ff\in\mathcal{F}, and q,nq,n\in\mathbb{N}, we have

Pr[𝒟𝒸(𝒻𝓈𝓀,𝖼𝗍)=𝒻(𝓍)|𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1𝓆)(𝒻𝓈𝓀,𝗏𝗄)𝒦𝒢(𝗆𝗌𝗄,𝒻,1𝓃)𝖼𝗍𝖤𝗇𝖼(𝗆𝗌𝗄,𝓍)]=1𝗇𝖾𝗀𝗅(λ).\displaystyle\Pr\left[\mathpzc{Dec}(\mathpzc{fsk},\mathsf{ct})\allowbreak=f(x)\ \middle|\begin{array}[]{ll}\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q})\\ (\mathpzc{fsk},\mathsf{vk})\leftarrow\mathpzc{KG}(\mathsf{msk},f,1^{n})\\ \mathsf{ct}\leftarrow\mathsf{Enc}(\mathsf{msk},x)\end{array}\right]=1-{\mathsf{negl}}(\lambda). (16)
Verification correctness:

For every ff\in\mathcal{F} and q,nq,n\in\mathbb{N}, we have

Pr[𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)=|𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1q)(𝒻𝓈𝓀,𝗏𝗄)𝒦𝒢(𝗆𝗌𝗄,𝒻,1𝓃)𝖼𝖾𝗋𝗍𝒞𝓇𝓉(𝒻𝓈𝓀)]=1𝗇𝖾𝗀𝗅(λ).\displaystyle\Pr\left[\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert})=\top\ \middle|\begin{array}[]{ll}\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q})\\ (\mathpzc{fsk},\mathsf{vk})\leftarrow\mathpzc{KG}(\mathsf{msk},f,1^{n})\\ \mathsf{cert}\leftarrow\mathpzc{Cert}(\mathpzc{fsk})\end{array}\right]=1-{\mathsf{negl}}(\lambda). (20)
Definition 3.2 (Selective Lessor Security).

We say that 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL} is a selectively lessor secure SKFE-SKL scheme for 𝒳,𝒴\mathcal{X},\mathcal{Y}, and \mathcal{F}, if it satisfies the following requirement, formalized from the experiment 𝖤𝗑𝗉𝒜,𝖲𝖪𝖥𝖤-𝖲𝖪𝖫𝗌𝖾𝗅-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,𝖼𝗈𝗂𝗇)\mathsf{Exp}_{\mathpzc{A},\mathsf{SKFE\textrm{-}SKL}}^{\mathsf{sel}\mbox{-}\mathsf{lessor}}(1^{\lambda},\mathsf{coin}) between an adversary 𝒜\mathpzc{A} and a challenger:

  1. 1.

    At the beginning, 𝒜\mathpzc{A} sends (1q,x0,x1)(1^{q},x_{0}^{*},x_{1}^{*}) to the challenger. The challenger runs 𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1q)\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q}). Throughout the experiment, 𝒜\mathpzc{A} can access the following oracles.

    O𝖤𝗇𝖼(x)O_{\mathtt{\mathsf{Enc}}}(x):

    Given xx, it returns 𝖤𝗇𝖼(𝗆𝗌𝗄,x)\mathsf{Enc}(\mathsf{msk},x).

    O𝒦𝒢(f,1n)O_{\mathtt{\mathpzc{KG}}}(f,1^{n}):

    Given (f,1n)(f,1^{n}), it generates (𝒻𝓈𝓀,𝗏𝗄)𝒦𝒢(𝗆𝗌𝗄,𝒻,1𝓃)(\mathpzc{fsk},\mathsf{vk})\leftarrow\mathpzc{KG}(\mathsf{msk},f,1^{n}), sends 𝒻𝓈𝓀\mathpzc{fsk} to 𝒜\mathpzc{A}, and adds (f,1n,𝗏𝗄,)(f,1^{n},\mathsf{vk},\bot) to L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. 𝒜\mathpzc{A} can access this oracle at most qq times.

    O𝖵𝗋𝖿𝗒(f,𝖼𝖾𝗋𝗍)O_{\mathtt{\mathsf{Vrfy}}}(f,\mathsf{cert}):

    Given (f,𝖼𝖾𝗋𝗍)(f,\mathsf{cert}), it finds an entry (f,1n,𝗏𝗄,M)(f,1^{n},\mathsf{vk},M) from L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. (If there is no such entry, it returns \bot.) If =𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\top=\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert}) and the number of queries to O𝖤𝗇𝖼O_{\mathtt{\mathsf{Enc}}} at this point is less than nn, it returns \top and updates the entry into (f,1n,𝗏𝗄,)(f,1^{n},\mathsf{vk},\top). Otherwise, it returns \bot.

  2. 2.

    When 𝒜\mathpzc{A} requests the challenge ciphertext, the challenger checks if for any entry (f,1n,𝗏𝗄,M)(f,1^{n},\mathsf{vk},M) in L𝒦𝒢L_{\mathtt{\mathpzc{KG}}} such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), it holds that M=M=\top. If so, the challenger generates 𝖼𝗍𝖤𝗇𝖼(𝗆𝗌𝗄,x𝖼𝗈𝗂𝗇)\mathsf{ct}^{*}\leftarrow\mathsf{Enc}(\mathsf{msk},x_{\mathsf{coin}}^{*}) and sends 𝖼𝗍\mathsf{ct}^{*} to 𝒜\mathpzc{A}. Otherwise, the challenger outputs 0. Hereafter, 𝒜\mathpzc{A} is not allowed to sends a function ff such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}) to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}.

  3. 3.

    𝒜\mathpzc{A} outputs a guess 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} for 𝖼𝗈𝗂𝗇\mathsf{coin}. The challenger outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} as the final output of the experiment.

For any QPT 𝒜\mathpzc{A}, it holds that

𝖠𝖽𝗏𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜𝗌𝖾𝗅-𝗅𝖾𝗌𝗌𝗈𝗋(λ)|Pr[𝖤𝗑𝗉𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜𝗌𝖾𝗅-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,0)=1]Pr[𝖤𝗑𝗉𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜𝗌𝖾𝗅-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,1)=1]|𝗇𝖾𝗀𝗅(λ).\displaystyle\mathsf{Adv}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{lessor}}(\lambda)\coloneqq\absolutevalue{\Pr[\mathsf{Exp}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{lessor}}(1^{\lambda},0)=1]-\Pr[\mathsf{Exp}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{lessor}}(1^{\lambda},1)=1]}\leq{\mathsf{negl}}(\lambda). (21)
Remark 3.3 (On the adaptive security).

We can similarly define adaptive lessor security where we allow 𝒜\mathpzc{A} to adaptively choose the challenge plaintext pair (x0,x1)(x_{0}^{*},x_{1}^{*}). For standard FE, we can generically convert a selectively secure one into an adaptively secure one without any additional assumption [ABSV15]. We observe that a similar transformation works for SKFE with secure key leasing. Thus, for simplicity, we focus on selective lessor security in this work. See Section B.1 for the definition and transformation.

Remark 3.4 (On the simulation-based security).

We can also define a simulation-based variant of selective/adaptive lessor security where a simulator simulates a challenge ciphertext without the challenge plaintext xx^{\ast} as the simulation-based security for standard FE [BSW11, GVW12]. We can generically convert indistinguishability-based lessor secure SKFE with secure key leasing into a simulation-based lessor secure one without any additional assumptions as standard FE [DIJ+13]. See Section B.2 for the simulation-based definition and the transformation.

3.2 SKFE with Static-Bound Secure Key Leasing

In this section, we define SKFE with static-bound secure key leasing (SKFE-sbSKL). It is a weaker variant of SKFE-SKL in which a single availability bound nn applied to every decryption key is fixed at the setup time. We design SKFE-sbSKL so that it can be transformed into SKFE-SKL in a generic way. For this reason, we require an SKFE-sbSKL scheme to satisfy an efficiency requirement called weak optimal efficiency and slightly stronger variant of the lessor security notion. 111111We borrow the term weak optimal efficiency from the paper by Garg, Goyal, Lu, and Waters [GGLW21], which studies dynamic bounded collusion security for standard FE.

Below, we first introduce the syntax of SKFE-sbSKL. Then, before introducing the definition of (selective) lessor security for it, we provide the overview of the transformation to SKFE-SKL since we think the overview makes it easy to understand the security notion.

Definition 3.5 (SKFE with Static-Bound Secure Key Leasing).

An SKFE-sbSKL scheme 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} is a tuple of six algorithms (𝖲𝖾𝗍𝗎𝗉,𝒦𝒢,𝖤𝗇𝖼,𝒟𝒸,𝒞𝓇𝓉,𝖵𝗋𝖿𝗒)(\mathsf{Setup},\mathpzc{KG},\mathsf{Enc},\mathpzc{Dec},\mathpzc{Cert},\mathsf{Vrfy}). The only difference from a normal SKFE scheme with secure key leasing is that 𝒦𝒢\mathpzc{KG} does not take as input the availability bound nn, and instead, 𝖲𝖾𝗍𝗎𝗉\mathsf{Setup} takes it as an input. Moreover, 𝖲𝖾𝗍𝗎𝗉\mathsf{Setup} takes it in binary as 𝖲𝖾𝗍𝗎𝗉(1λ,1q,n)\mathsf{Setup}(1^{\lambda},1^{q},n), and we require the following weak optimal efficiency.

Weak Optimal Efficiency:

We require that the running time of 𝖲𝖾𝗍𝗎𝗉\mathsf{Setup} and 𝖤𝗇𝖼\mathsf{Enc} is bounded by a fixed polynomial of λ\lambda, qq, and logn\log n.

Overview of the transformation to SKFE-SKL.

As seen above, 𝖲𝖾𝗍𝗎𝗉\mathsf{Setup} and 𝖤𝗇𝖼\mathsf{Enc} of an SKFE-sbSKL scheme 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} is required to run in time logn\log n. This is because, in the transformation to SKFE-SKL, we use λ\lambda instances of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} where the kk-th instance is set up with the availability bound 2k2^{k} for every k[λ]k\in[\lambda]. The weak optimal efficiency ensures that 𝖲𝖾𝗍𝗎𝗉\mathsf{Setup} and 𝖤𝗇𝖼\mathsf{Enc} of all λ\lambda instances run in polynomial time. The details of the transformation are as follows.

We construct an SKFE-SKL scheme 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL} from an SKFE-sbSKL scheme 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫=(𝖲𝖾𝗍𝗎𝗉,𝒦𝒢,𝖤𝗇𝖼,𝒟𝒸,𝒞𝓇𝓉,𝖵𝗋𝖿𝗒)\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}=(\mathsf{Setup},\mathpzc{KG},\mathsf{Enc},\mathpzc{Dec},\mathpzc{Cert},\mathsf{Vrfy}). When generating a master secret key 𝗌𝗄𝗅.𝗆𝗌𝗄\mathsf{skl}.\mathsf{msk} of 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL}, we generate 𝗆𝗌𝗄k𝖲𝖾𝗍𝗎𝗉(1λ,1q,2k)\mathsf{msk}_{k}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q},2^{k}) for every k[λ]k\in[\lambda], and set 𝗌𝗄𝗅.𝗆𝗌𝗄(𝗆𝗌𝗄k)k[λ]\mathsf{skl}.\mathsf{msk}\coloneqq(\mathsf{msk}_{k})_{k\in[\lambda]}. To encrypt xx by 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL}, we encrypt it by all λ\lambda instances, that is, generate 𝖼𝗍k𝖤𝗇𝖼(𝗆𝗌𝗄k,x)\mathsf{ct}_{k}\leftarrow\mathsf{Enc}(\mathsf{msk}_{k},x) for every k[λ]k\in[\lambda]. The resulting ciphertext is 𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍k)k[λ]\mathsf{skl}.\mathsf{ct}\coloneqq(\mathsf{ct}_{k})_{k\in[\lambda]}. To generate a decryption key of 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL} for a function ff and an availability bound nn, we first compute k[λ]k^{\prime}\in[\lambda] such that 2k1n2k2^{k^{\prime}-1}\leq n\leq 2^{k^{\prime}}. Then, we generate (𝒻𝓈𝓀𝓀,𝗏𝗄𝓀)𝒦𝒢(𝗆𝗌𝗄𝓀,𝒻)(\mathpzc{fsk}_{k^{\prime}},\mathsf{vk}_{k^{\prime}})\leftarrow\mathpzc{KG}(\mathsf{msk}_{k^{\prime}},f). The resulting decryption key is 𝗌𝗄𝗅.𝒻𝓈𝓀(𝓀,𝒻𝓈𝓀𝓀)\mathsf{skl}.\mathpzc{fsk}\coloneqq(k^{\prime},\mathpzc{fsk}_{k^{\prime}}) and the corresponding verification key is 𝗏𝗄𝗏𝗄k\mathsf{vk}\coloneqq\mathsf{vk}_{k^{\prime}}. Decryption is performed by decrypting 𝖼𝗍k\mathsf{ct}_{k^{\prime}} included in 𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍k)k[λ]\mathsf{skl}.\mathsf{ct}\coloneqq(\mathsf{ct}_{k})_{k\in[\lambda]} by 𝒻𝓈𝓀𝓀\mathpzc{fsk}_{k^{\prime}}. The certification generation and verification of 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL} are simply those of 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL}.

We now consider the security proof of 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL}. In the experiment 𝖤𝗑𝗉𝒜,𝖲𝖪𝖥𝖤-𝖲𝖪𝖫𝗌𝖾𝗅-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,0)\mathsf{Exp}_{\mathpzc{A},\mathsf{SKFE\textrm{-}SKL}}^{\mathsf{sel}\mbox{-}\mathsf{lessor}}(1^{\lambda},0), an adversary 𝒜\mathpzc{A} is given the challenge ciphertext 𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍k)k[λ]\mathsf{skl}.\mathsf{ct}^{*}\coloneqq(\mathsf{ct}^{*}_{k})_{k\in[\lambda]}, where 𝖼𝗍k𝖤𝗇𝖼(𝗆𝗌𝗄k,x0)\mathsf{ct}^{*}_{k}\leftarrow\mathsf{Enc}(\mathsf{msk}_{k},x_{0}^{*}) for every k[λ]k\in[\lambda]. The proof is done if we can switch all of 𝖼𝗍k\mathsf{ct}^{*}_{k} into 𝖤𝗇𝖼(𝗆𝗌𝗄k,x1)\mathsf{Enc}(\mathsf{msk}_{k},x_{1}^{*}) without being detected by 𝒜\mathpzc{A}. To this end, the underlying 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} needs to satisfy a stronger variant of lessor security notion where an adversary is allowed to declare the availability bound such that 𝒦𝒢\mathpzc{KG} does not run in polynomial time, if the adversary does not make any query to the key generation oracle. For example, to switch 𝖼𝗍λ\mathsf{ct}^{*}_{\lambda}, the reduction algorithm attacking 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} needs to declare the availability bound 2λ2^{\lambda}, under which 𝒦𝒢\mathpzc{KG} might not run in polynomial time. Note that 𝖲𝖾𝗍𝗎𝗉\mathsf{Setup} and 𝖤𝗇𝖼\mathsf{Enc} run in polynomial time even for such an availability bound due to the weak optimal efficiency. Thus, we formalize the security notion of SKFE-sbSKL as follows.

Definition 3.6 (Selective Strtong Lessor Security).

We define selective strong lessor security for SKFE-sbSKL in the same way as that for SKFE-SKL defined in Definition 3.2 , except the following changes for the security experiment.

  • 𝒜\mathpzc{A} outputs nn at the beginning, and the challenger generates 𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1q,n)\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q},n). If 𝒜\mathpzc{A} makes a query to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}} or O𝖵𝗋𝖿𝗒O_{\mathtt{\mathsf{Vrfy}}}, 𝒜\mathpzc{A} is required to output nn such that 𝒦𝒢\mathpzc{KG} and 𝖵𝗋𝖿𝗒\mathsf{Vrfy} run in polynomial time.

  • O𝒦𝒢O_{\mathtt{\mathpzc{KG}}} does not take 1n1^{n} as an input.

Remark 3.7 (Insufficiency of existing bounded collusion techniques).

In Section 1.3, we stated that it is not clear how to use the existing bounded collusion techniques [GVW12, AV19] for constructing SKFE-sbSKL. We provide a more detailed discussion on this point.

The bounded collusion technique essentially enables us to increase the number of decryption keys that an adversary can obtain. Thus, to try to use the bounded collusion technique in our context, imagine the following naive construction using standard SKFE 𝖲𝖪𝖥𝖤\mathsf{SKFE} and SKE with certified deletion 𝖢𝖣𝖲𝖪𝖤\mathsf{CDSKE}. This construction is a flipped version of the naive construction provided in Section 1.3. In the construction, we encrypt a ciphertext of 𝖲𝖪𝖥𝖤\mathsf{SKFE} by 𝖢𝖣𝖲𝖪𝖤\mathsf{CDSKE}, and we include the key of 𝖢𝖣𝖲𝖪𝖤\mathsf{CDSKE} into the decryption key of the resulting scheme. The construction can be seen as an SKFE scheme with certified deletion (for ciphertexts) that is secure if an adversary deletes the challenge ciphertext before seeing any decryption key. The roles of ciphertexts and decryption keys are almost symmetric in SKFE [BS18]. Thus, if we can amplify the security of this construction so that it is secure if an adversary sees some decryption keys before deleting the challenge ciphertext, it would lead to SKFE-sbSKL. The question is whether we can perform such an amplification using the existing bounded collusion techniques [GVW12, AV19]. We observe that it is highly non-trivial to adapt the existing bounded collusion technique starting from “0-bounded” security. Especially, it seems difficult to design such a transformation so that the resulting SKFE-sbSKL obtained by flipping the roles of ciphertexts and decryption keys satisfies weak optimal efficiency and security against unbounded number of encryption queries such as Definition 3.6.

We develop a different technique due to the above reason. Namely, we reduce the task of amplifying the availability bound of SKFE-sbSKL into the task of amplifying the security bound of it. In fact, our work implicitly shows that security bound amplification for FE can be used to achieve bounded collusion-resistance. We see that we can construct bounded collusion secure FE from single-key FE by our parallelizing then security bound amplification technique.

3.3 Index-Based SKFE with Static-Bound Secure Key Leasing

We define index-based SKFE-sbSKL. Similarly to SKFE-sbSKL, it needs to satisfy weak optimal efficiency and (selective) strong lessor security.

Definition 3.8 (Index-Base SKFE with Static-Bound Secure Key Leasing).

An index-base SKFE-sbSKL scheme 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL} is a tuple of six algorithms (𝖲𝖾𝗍𝗎𝗉,𝒦𝒢,𝗂𝖤𝗇𝖼,𝒟𝒸,𝒞𝓇𝓉,𝖵𝗋𝖿𝗒)(\mathsf{Setup},\mathpzc{KG},\mathsf{iEnc},\allowbreak\mathpzc{Dec},\mathpzc{Cert},\mathsf{Vrfy}). The only difference from an SKFE-sbSKL scheme is that the encryption algorithm 𝗂𝖤𝗇𝖼\mathsf{iEnc} additionally takes as input an index j[n]j\in[n].

Decryption correctness:

For every x𝒳x\in\mathcal{X}, ff\in\mathcal{F}, q,nq,n\in\mathbb{N}, and j[n]j\in[n], we have

Pr[𝒟𝒸(𝒻𝓈𝓀,𝖼𝗍)=𝒻(𝓍)|𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1𝓆,𝓃)(𝒻𝓈𝓀,𝗏𝗄)𝒦𝒢(𝗆𝗌𝗄,𝒻)𝖼𝗍𝖤𝗇𝖼(𝗆𝗌𝗄,𝒿,𝓍)]=1𝗇𝖾𝗀𝗅(λ).\displaystyle\Pr\left[\mathpzc{Dec}(\mathpzc{fsk},\mathsf{ct})\allowbreak=f(x)\ \middle|\begin{array}[]{ll}\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q},n)\\ (\mathpzc{fsk},\mathsf{vk})\leftarrow\mathpzc{KG}(\mathsf{msk},f)\\ \mathsf{ct}\leftarrow\mathsf{Enc}(\mathsf{msk},j,x)\end{array}\right]=1-{\mathsf{negl}}(\lambda). (25)
Verification correctness:

For every ff\in\mathcal{F} and q,nq,n\in\mathbb{N}, we have

Pr[𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)=|𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1q,n)(𝒻𝓈𝓀,𝗏𝗄)𝒦𝒢(𝗆𝗌𝗄,𝒻)𝖼𝖾𝗋𝗍𝒞𝓇𝓉(𝒻𝓈𝓀)]=1𝗇𝖾𝗀𝗅(λ).\displaystyle\Pr\left[\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert})=\top\ \middle|\begin{array}[]{ll}\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q},n)\\ (\mathpzc{fsk},\mathsf{vk})\leftarrow\mathpzc{KG}(\mathsf{msk},f)\\ \mathsf{cert}\leftarrow\mathpzc{Cert}(\mathpzc{fsk})\end{array}\right]=1-{\mathsf{negl}}(\lambda). (29)
Weak Optimal Efficiency:

We require that the running time of 𝖲𝖾𝗍𝗎𝗉\mathsf{Setup} and 𝖤𝗇𝖼\mathsf{Enc} is bounded by a fixed polynomial of λ\lambda, qq, and logn\log n.

Definition 3.9 (Selective Strong Lessor Security).

We say that 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL} is a selectively strong lessor secure index-based SKFE-sbSKL scheme for 𝒳,𝒴\mathcal{X},\mathcal{Y}, and \mathcal{F}, if it satisfies the following requirement, formalized from the experiment 𝖤𝗑𝗉𝒜,𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫𝗌𝖾𝗅-𝗌-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,𝖼𝗈𝗂𝗇)\mathsf{Exp}_{\mathpzc{A},\mathsf{iSKFE\textrm{-}sbSKL}}^{\mathsf{sel}\mbox{-}\mathsf{s}\mbox{-}\mathsf{lessor}}(1^{\lambda},\mathsf{coin}) between an adversary 𝒜\mathpzc{A} and a challenger:

  1. 1.

    At the beginning, 𝒜\mathpzc{A} sends (1q,n,j,x0,x1)(1^{q},n,j^{*},x_{0}^{*},x_{1}^{*}) to the challenger. If 𝒜\mathpzc{A} makes a query to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}} or O𝖵𝗋𝖿𝗒O_{\mathtt{\mathsf{Vrfy}}}, 𝒜\mathpzc{A} is required to output nn such that 𝒦𝒢\mathpzc{KG} and 𝖵𝗋𝖿𝗒\mathsf{Vrfy} run in polynomial time. The challenger runs 𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1q,n)\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q},n). Throughout the experiment, 𝒜\mathpzc{A} can access the following oracles.

    O𝖤𝗇𝖼(j,x)O_{\mathtt{\mathsf{Enc}}}(j,x):

    Given jj and xx, it returns 𝖤𝗇𝖼(𝗆𝗌𝗄,j,x)\mathsf{Enc}(\mathsf{msk},j,x).

    O𝒦𝒢(f)O_{\mathtt{\mathpzc{KG}}}(f):

    Given ff, it generates (𝒻𝓈𝓀,𝗏𝗄)𝒦𝒢(𝗆𝗌𝗄,𝒻)(\mathpzc{fsk},\mathsf{vk})\leftarrow\mathpzc{KG}(\mathsf{msk},f), sends 𝒻𝓈𝓀\mathpzc{fsk} to 𝒜\mathpzc{A}, and adds (f,𝗏𝗄,)(f,\mathsf{vk},\bot) to L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. 𝒜\mathpzc{A} can access this oracle at most qq times.

    O𝖵𝗋𝖿𝗒(f,𝖼𝖾𝗋𝗍)O_{\mathtt{\mathsf{Vrfy}}}(f,\mathsf{cert}):

    Given (f,𝖼𝖾𝗋𝗍)(f,\mathsf{cert}), it finds an entry (f,𝗏𝗄,M)(f,\mathsf{vk},M) from L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. (If there is no such entry, it returns \bot.) If =𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\top=\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert}), it returns \top and updates the entry into (f,𝗏𝗄,)(f,\mathsf{vk},\top). Otherwise, it returns \bot.

  2. 2.

    When 𝒜\mathpzc{A} requests the challenge ciphertext, the challenger checks if for any entry (f,𝗏𝗄,M)(f,\mathsf{vk},M) in L𝒦𝒢L_{\mathtt{\mathpzc{KG}}} such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), it holds that M=M=\top, and 𝒜\mathpzc{A} does not make a query with jj^{*} to O𝖤𝗇𝖼O_{\mathtt{\mathsf{Enc}}} at this point. If so, the challenger generates 𝖼𝗍𝖤𝗇𝖼(𝗆𝗌𝗄,j,x𝖼𝗈𝗂𝗇)\mathsf{ct}^{*}\leftarrow\mathsf{Enc}(\mathsf{msk},j^{*},x_{\mathsf{coin}}^{*}) and sends 𝖼𝗍\mathsf{ct}^{*} to 𝒜\mathpzc{A}. Otherwise, the challenger outputs 0. Hereafter, 𝒜\mathpzc{A} is not allowed to sends a function ff such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}) to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}.

  3. 3.

    𝒜\mathpzc{A} outputs a guess 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} for 𝖼𝗈𝗂𝗇\mathsf{coin}. The challenger outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} as the final output of the experiment.

For any QPT 𝒜\mathpzc{A}, it holds that

𝖠𝖽𝗏𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫,𝒜𝗌𝖾𝗅-𝗌-𝗅𝖾𝗌𝗌𝗈𝗋(λ)|Pr[𝖤𝗑𝗉𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫,𝒜𝗌𝖾𝗅-𝗌-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,0)=1]Pr[𝖤𝗑𝗉𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫,𝒜𝗌𝖾𝗅-𝗌-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,0)=1]|𝗇𝖾𝗀𝗅(λ).\displaystyle\mathsf{Adv}_{\mathsf{iSKFE\textrm{-}sbSKL},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{s}\mbox{-}\mathsf{lessor}}(\lambda)\coloneqq\absolutevalue{\Pr[\mathsf{Exp}_{\mathsf{iSKFE\textrm{-}sbSKL},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{s}\mbox{-}\mathsf{lessor}}(1^{\lambda},0)=1]-\Pr[\mathsf{Exp}_{\mathsf{iSKFE\textrm{-}sbSKL},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{s}\mbox{-}\mathsf{lessor}}(1^{\lambda},0)=1]}\leq{\mathsf{negl}}(\lambda). (30)

4 Index-Base SKFE with Static-Bound Secure Key Leasing

We construct an index-based SKFE-sbSKL scheme 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫=(𝗂𝖲𝖾𝗍𝗎𝗉,𝒾𝒦𝒢,𝗂𝖤𝗇𝖼,𝒾𝒟𝒸,𝒾𝒞𝓇𝓉,𝗂𝖵𝗋𝖿𝗒)\mathsf{iSKFE\textrm{-}sbSKL}=(\mathsf{iSetup},\mathpzc{iKG},\allowbreak\mathsf{iEnc},\mathpzc{iDec},\mathpzc{iCert},\mathsf{iVrfy}) using the following tools:

  • An SKFE scheme 𝖲𝖪𝖥𝖤=(𝖲𝖾𝗍𝗎𝗉,𝖪𝖦,𝖤𝗇𝖼,𝖣𝖾𝖼)\mathsf{SKFE}=(\mathsf{Setup},\mathsf{KG},\mathsf{Enc},\mathsf{Dec}).

  • An SKE scheme with Certified Deletion 𝖢𝖣𝖲𝖪𝖤=(𝖢𝖣.𝖪𝖦,𝖢𝖣.𝓃𝒸,𝖢𝖣.𝒟𝒸,𝖢𝖣.𝒟𝓁,𝖢𝖣.𝖵𝗋𝖿𝗒)\mathsf{CDSKE}=(\mathsf{CD}.\mathsf{KG},\mathsf{CD}.\mathpzc{Enc},\mathsf{CD}.\mathpzc{Dec},\allowbreak\mathsf{CD}.\mathpzc{Del},\mathsf{CD}.\mathsf{Vrfy}).

  • A PRF 𝖥\mathsf{F}.

The description of 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL} is as follows.

𝗂𝖲𝖾𝗍𝗎𝗉(1λ,1q,n)\mathsf{iSetup}(1^{\lambda},1^{q},n):

  • Generate K{0,1}λK\leftarrow\{0,1\}^{\lambda}.

  • Output 𝗌𝗄𝗅.𝗆𝗌𝗄:=(q,n,K)\mathsf{skl}.\mathsf{msk}:=(q,n,K).

𝒾𝒦𝒢(𝗆𝗌𝗄,𝒻)\mathpzc{iKG}(\mathsf{msk},f):

  • Parse (q,n,K)𝗌𝗄𝗅.𝗆𝗌𝗄(q,n,K)\leftarrow\mathsf{skl}.\mathsf{msk}.

  • Compute rjwj𝖥K(j)r_{j}\|w_{j}\leftarrow\mathsf{F}_{K}(j), 𝗆𝗌𝗄j𝖲𝖾𝗍𝗎𝗉(1λ,1q;rj)\mathsf{msk}_{j}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q};r_{j}), and 𝖼𝖽.𝗌𝗄j𝖢𝖣.𝖪𝖦(1λ;wj)\mathsf{cd}.\mathsf{sk}_{j}\leftarrow\mathsf{CD}.\mathsf{KG}(1^{\lambda};w_{j}) for every j[n]j\in[n].

  • Generate 𝖿𝗌𝗄j𝖪𝖦(𝗆𝗌𝗄j,f)\mathsf{fsk}_{j}\leftarrow\mathsf{KG}(\mathsf{msk}_{j},f) for every j[n]j\in[n].

  • Generate (𝖼𝖽.𝒸𝓉𝒿,𝗏𝗄𝒿)𝖢𝖣.𝓃𝒸(𝖼𝖽.𝗌𝗄𝒿,𝖿𝗌𝗄𝒿)(\mathsf{cd}.\mathpzc{ct}_{j},\mathsf{vk}_{j})\leftarrow\mathsf{CD}.\mathpzc{Enc}(\mathsf{cd}.\mathsf{sk}_{j},\mathsf{fsk}_{j}) for every j[n]j\in[n].

  • Output 𝗌𝗄𝗅.𝒻𝓈𝓀:=(𝖼𝖽.𝒸𝓉𝒿)𝒿[𝓃]\mathsf{skl}.\mathpzc{fsk}:=(\mathsf{cd}.\mathpzc{ct}_{j})_{j\in[n]} and 𝗏𝗄:=(𝗏𝗄j)j[n]\mathsf{vk}:=(\mathsf{vk}_{j})_{j\in[n]}.

𝗂𝖤𝗇𝖼(𝗌𝗄𝗅.𝗆𝗌𝗄,j,x)\mathsf{iEnc}(\mathsf{skl}.\mathsf{msk},j,x):

  • Parse (q,n,K)𝗌𝗄𝗅.𝗆𝗌𝗄(q,n,K)\leftarrow\mathsf{skl}.\mathsf{msk}.

  • Compute rjwj𝖥K(j)r_{j}\|w_{j}\leftarrow\mathsf{F}_{K}(j), 𝗆𝗌𝗄j𝖲𝖾𝗍𝗎𝗉(1λ,1q;rj)\mathsf{msk}_{j}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q};r_{j}), and 𝖼𝖽.𝗌𝗄j𝖢𝖣.𝖪𝖦(1λ;wj)\mathsf{cd}.\mathsf{sk}_{j}\leftarrow\mathsf{CD}.\mathsf{KG}(1^{\lambda};w_{j}).

  • Generate 𝖼𝗍j𝖤𝗇𝖼(𝗆𝗌𝗄j,x)\mathsf{ct}_{j}\leftarrow\mathsf{Enc}(\mathsf{msk}_{j},x).

  • Output 𝗌𝗄𝗅.𝖼𝗍:=(j,𝖼𝗍j,𝖼𝖽.𝗌𝗄j)\mathsf{skl}.\mathsf{ct}:=(j,\mathsf{ct}_{j},\mathsf{cd}.\mathsf{sk}_{j}).

𝒾𝒟𝒸(𝗌𝗄𝗅.𝒻𝓈𝓀,𝗌𝗄𝗅.𝖼𝗍)\mathpzc{iDec}(\mathsf{skl}.\mathpzc{fsk},\mathsf{skl}.\mathsf{ct}):

  • Parse (𝖼𝖽.𝒸𝓉𝒿)𝒿[𝓃]𝗌𝗄𝗅.𝒻𝓈𝓀(\mathsf{cd}.\mathpzc{ct}_{j})_{j\in[n]}\leftarrow\mathsf{skl}.\mathpzc{fsk} and (j,𝖼𝗍j,𝖼𝖽.𝗌𝗄j)𝗌𝗄𝗅.𝖼𝗍(j,\mathsf{ct}_{j},\mathsf{cd}.\mathsf{sk}_{j})\leftarrow\mathsf{skl}.\mathsf{ct}.

  • Compute 𝖿𝗌𝗄j𝖢𝖣.𝒟𝒸(𝖼𝖽.𝗌𝗄𝒿,𝗌𝗄𝗅.𝒻𝓈𝓀𝒿)\mathsf{fsk}_{j}\leftarrow\mathsf{CD}.\mathpzc{Dec}(\mathsf{cd}.\mathsf{sk}_{j},\mathsf{skl}.\mathpzc{fsk}_{j}).

  • Output y𝖣𝖾𝖼(𝖿𝗌𝗄j,𝖼𝗍j)y\leftarrow\mathsf{Dec}(\mathsf{fsk}_{j},\mathsf{ct}_{j}).

𝒾𝒞𝓇𝓉(𝗌𝗄𝗅.𝒻𝓈𝓀)\mathpzc{iCert}(\mathsf{skl}.\mathpzc{fsk}):

  • Parse (𝖼𝖽.𝒸𝓉𝒿)𝒿[𝓃]𝗌𝗄𝗅.𝒻𝓈𝓀(\mathsf{cd}.\mathpzc{ct}_{j})_{j\in[n]}\leftarrow\mathsf{skl}.\mathpzc{fsk}.

  • Compute 𝖼𝖾𝗋𝗍j𝖢𝖣.𝒟𝓁(𝖼𝖽.𝖼𝗍𝒿)\mathsf{cert}_{j}\leftarrow\mathsf{CD}.\mathpzc{Del}(\mathsf{cd}.\mathsf{ct}_{j}) for every j[n]j\in[n].

  • Output 𝖼𝖾𝗋𝗍:=(𝖼𝖾𝗋𝗍j)j[n]\mathsf{cert}:=(\mathsf{cert}_{j})_{j\in[n]}.

𝗂𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\mathsf{iVrfy}(\mathsf{vk},\mathsf{cert}):

  • Parse (𝗏𝗄j)j[n]𝗏𝗄(\mathsf{vk}_{j})_{j\in[n]}\leftarrow\mathsf{vk} and (𝖼𝖾𝗋𝗍j)j[n]𝖼𝖾𝗋𝗍(\mathsf{cert}_{j})_{j\in[n]}\leftarrow\mathsf{cert}.

  • Output \top if =𝖢𝖣.𝖵𝗋𝖿𝗒(𝗏𝗄j,𝖼𝖾𝗋𝗍j)\top=\mathsf{CD}.\mathsf{Vrfy}(\mathsf{vk}_{j},\mathsf{cert}_{j}) for every j[n]j\in[n], and otherwise \bot.

It is clear that 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL} satisfies correctness and weak optimal efficiency. For security, we have the following theorem.

Theorem 4.1.

If 𝖲𝖪𝖥𝖤\mathsf{SKFE} is selective indistinguishability-secure, 𝖢𝖣𝖲𝖪𝖤\mathsf{CDSKE} is IND-CVA-CD secure,121212See Definition 2.13 for the defition of IND-CVA-CD. and 𝖥\mathsf{F} is a secure PRF, then 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL} satisfies selective strong lessor security.

Proof of Theorem 4.1.

We define a sequence of hybrid games to prove the theorem.

𝖧𝗒𝖻0\mathsf{Hyb}_{0}:

This is the same as 𝖤𝗑𝗉𝒜,𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫𝗌𝖾𝗅-𝗌-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,0)\mathsf{Exp}_{\mathpzc{A},\mathsf{iSKFE\textrm{-}sbSKL}}^{\mathsf{sel}\mbox{-}\mathsf{s}\mbox{-}\mathsf{lessor}}(1^{\lambda},0).

  1. 1.

    At the beginning, 𝒜\mathpzc{A} sends (1q,n,j,x0,x1)(1^{q},n,j^{*},x_{0}^{*},x_{1}^{*}) to the challenger. The challenger generates K{0,1}λK\leftarrow\{0,1\}^{\lambda}. Below, we let rjwj𝖥K(j)r_{j}\|w_{j}\leftarrow\mathsf{F}_{K}(j), 𝗆𝗌𝗄j𝖲𝖾𝗍𝗎𝗉(1λ,1q;rj)\mathsf{msk}_{j}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q};r_{j}), and 𝖼𝖽.𝗌𝗄j𝖢𝖣.𝖪𝖦(1λ;wj)\mathsf{cd}.\mathsf{sk}_{j}\leftarrow\mathsf{CD}.\mathsf{KG}(1^{\lambda};w_{j}) for every j[n]j\in[n]. Throughout the experiment, 𝒜\mathpzc{A} can access the following oracles.

    O𝖤𝗇𝖼(j,x)O_{\mathtt{\mathsf{Enc}}}(j,x):

    Given jj and xx, it generates 𝖼𝗍j𝖤𝗇𝖼(𝗆𝗌𝗄j,x)\mathsf{ct}_{j}\leftarrow\mathsf{Enc}(\mathsf{msk}_{j},x) and returns 𝗌𝗄𝗅.𝖼𝗍(j,𝖼𝗍j,𝖼𝖽.𝗌𝗄j)\mathsf{skl}.\mathsf{ct}\coloneqq(j,\mathsf{ct}_{j},\mathsf{cd}.\mathsf{sk}_{j}).

    O𝒦𝒢(f)O_{\mathtt{\mathpzc{KG}}}(f):

    Given ff, it does the following.

    • Compute 𝖿𝗌𝗄j𝖪𝖦(𝗆𝗌𝗄j,f)\mathsf{fsk}_{j}\leftarrow\mathsf{KG}(\mathsf{msk}_{j},f) for every j[n]j\in[n].

    • Compute (𝖼𝖽.𝒸𝓉𝒿,𝗏𝗄𝒿)𝖢𝖣.𝓃𝒸(𝖼𝖽.𝗌𝗄𝒿,𝖿𝗌𝗄𝒿)(\mathsf{cd}.\mathpzc{ct}_{j},\mathsf{vk}_{j})\leftarrow\mathsf{CD}.\mathpzc{Enc}(\mathsf{cd}.\mathsf{sk}_{j},\mathsf{fsk}_{j}) for every j[n]j\in[n].

    • Sets 𝗌𝗄𝗅.𝒻𝓈𝓀(𝖼𝖽.𝒸𝓉𝒿)𝒿[𝓃]\mathsf{skl}.\mathpzc{fsk}\coloneqq(\mathsf{cd}.\mathpzc{ct}_{j})_{j\in[n]} and 𝗌𝗄𝗅.𝗏𝗄(𝗏𝗄j)j[n]\mathsf{skl}.\mathsf{vk}\coloneqq(\mathsf{vk}_{j})_{j\in[n]}.

    It sends 𝗌𝗄𝗅.𝒻𝓈𝓀\mathsf{skl}.\mathpzc{fsk} to 𝒜\mathpzc{A} and adds (f,𝗌𝗄𝗅.𝗏𝗄,)(f,\mathsf{skl}.\mathsf{vk},\bot) to L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. 𝒜\mathpzc{A} is allowed to make at most qq queries to this oracle.

    O𝖵𝗋𝖿𝗒(f,𝖼𝖾𝗋𝗍(𝖼𝖾𝗋𝗍j)j[n])O_{\mathtt{\mathsf{Vrfy}}}(f,\mathsf{cert}\coloneqq(\mathsf{cert}_{j})_{j\in[n]}):

    Given (f,𝖼𝖾𝗋𝗍(𝖼𝖾𝗋𝗍j)j[n])(f,\mathsf{cert}\coloneqq(\mathsf{cert}_{j})_{j\in[n]}), it finds an entry (f,𝗏𝗄,M)(f,\mathsf{vk},M) from L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. (If there is no such entry, it returns \bot.) If =𝖵𝗋𝖿𝗒(𝗏𝗄j,𝖼𝖾𝗋𝗍j)\top=\mathsf{Vrfy}(\mathsf{vk}_{j},\mathsf{cert}_{j}) for every j[n]j\in[n], it returns \top and updates the entry into (f,𝗏𝗄,)(f,\mathsf{vk},\top). Otherwise, it returns \bot.

  2. 2.

    When 𝒜\mathpzc{A} requests the challenge ciphertext, the challenger checks if for any entry (f,𝗏𝗄,M)(f,\mathsf{vk},M) in L𝒦𝒢L_{\mathtt{\mathpzc{KG}}} such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), it holds that M=M=\top, and 𝒜\mathpzc{A} does not make a query with jj^{*} to O𝖤𝗇𝖼O_{\mathtt{\mathsf{Enc}}} at this point. If so, the challenger generates 𝖼𝗍j𝖤𝗇𝖼(𝗆𝗌𝗄j,x0)\mathsf{ct}^{*}_{j^{*}}\leftarrow\mathsf{Enc}(\mathsf{msk}_{j^{*}},x_{0}^{*}) and sends 𝗌𝗄𝗅.𝖼𝗍(j,𝖼𝗍j,𝖼𝖽.𝗌𝗄j)\mathsf{skl}.\mathsf{ct}^{*}\coloneqq(j^{*},\mathsf{ct}^{*}_{j^{*}},\mathsf{cd}.\mathsf{sk}_{j^{*}}) to 𝒜\mathpzc{A}. Otherwise, the challenger outputs 0. Hereafter, 𝒜\mathpzc{A} is not allowed to sends a function ff such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}) to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}.

  3. 3.

    𝒜\mathpzc{A} outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}. The challenger outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} as the final output of the experiment.

𝖧𝗒𝖻1\mathsf{Hyb}_{1}:

This is the same as 𝖧𝗒𝖻0\mathsf{Hyb}_{0} except that rjwjr_{j}\|w_{j} is generated as a uniformly random string for every j[n]j\in[n].

We have |Pr[𝖧𝗒𝖻0=1]Pr[𝖧𝗒𝖻1=1]|=𝗇𝖾𝗀𝗅(λ)\absolutevalue{\Pr[\mathsf{Hyb}_{0}=1]-\Pr[\mathsf{Hyb}_{1}=1]}={\mathsf{negl}}(\lambda) from the security of 𝖥\mathsf{F}.

𝖧𝗒𝖻2\mathsf{Hyb}_{2}:

This hybrid is the same as 𝖧𝗒𝖻1\mathsf{Hyb}_{1} except that when 𝒜\mathpzc{A} sends ff to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}, if f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), the challenger generates 𝖼𝖽.𝒸𝓉𝒿\mathsf{cd}.\mathpzc{ct}_{j^{*}} included in 𝗌𝗄𝗅.𝒻𝓈𝓀(𝖼𝖽.𝒸𝓉𝒿)𝒿[𝓃]\mathsf{skl}.\mathpzc{fsk}\coloneqq(\mathsf{cd}.\mathpzc{ct}_{j})_{j\in[n]} as (𝖼𝖽.𝒸𝓉𝒿,𝗏𝗄𝒿)𝖢𝖣.𝓃𝒸(𝖼𝖽.𝗌𝗄𝒿,0)(\mathsf{cd}.\mathpzc{ct}_{j^{*}},\mathsf{vk}_{j^{*}})\leftarrow\mathsf{CD}.\mathpzc{Enc}(\mathsf{cd}.\mathsf{sk}_{j^{*}},\boldsymbol{0}).

We can show that |Pr[𝖧𝗒𝖻1=1]Pr[𝖧𝗒𝖻2=1]|=𝗇𝖾𝗀𝗅(λ)\absolutevalue{\Pr[\mathsf{Hyb}_{1}=1]-\Pr[\mathsf{Hyb}_{2}=1]}={\mathsf{negl}}(\lambda) from the security of 𝖢𝖣𝖲𝖪𝖤\mathsf{CDSKE} as follows. We say 𝒜\mathpzc{A} is valid if when 𝒜\mathpzc{A} requests the challenge ciphertext, for any entry (f,𝗏𝗄,M)(f,\mathsf{vk},M) in L𝒦𝒢L_{\mathtt{\mathpzc{KG}}} such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), it holds that M=M=\top, and 𝒜\mathpzc{A} does not make a query with jj^{*} to O𝖤𝗇𝖼O_{\mathtt{\mathsf{Enc}}} at this point. In the estimation of |Pr[𝖧𝗒𝖻1=1]Pr[𝖧𝗒𝖻2=1]|\absolutevalue{\Pr[\mathsf{Hyb}_{1}=1]-\Pr[\mathsf{Hyb}_{2}=1]}, we have to consider the case where 𝒜\mathpzc{A} is valid since if 𝒜\mathpzc{A} is not valid, the output of the experiment is 0. In this transition of experiments, we change a plaintext encrypted under 𝖼𝖽.𝗌𝗄j\mathsf{cd}.\mathsf{sk}_{j^{*}}. If 𝒜\mathpzc{A} is valid, 𝒜\mathpzc{A} cannot obtain 𝖼𝖽.𝗌𝗄j\mathsf{cd}.\mathsf{sk}_{j^{*}} before 𝒜\mathpzc{A} is given 𝗌𝗄𝗅.𝖼𝗍\mathsf{skl}.\mathsf{ct}^{*}, and 𝒜\mathpzc{A} returns all ciphertexts under 𝖼𝖽.𝗌𝗄j\mathsf{cd}.\mathsf{sk}_{j^{*}} before it gets 𝖼𝖽.𝗌𝗄j\mathsf{cd}.\mathsf{sk}_{j^{*}}. Although the reduction does not have 𝗏𝗄j\mathsf{vk}_{j^{\ast}} here, it can simulate O𝖵𝗋𝖿𝗒O_{\mathtt{\mathsf{Vrfy}}} by using the verification oracle in IND-CVA-CD game. Then, we see that |Pr[𝖧𝗒𝖻1=1]Pr[𝖧𝗒𝖻2=1]|=𝗇𝖾𝗀𝗅(λ)\absolutevalue{\Pr[\mathsf{Hyb}_{1}=1]-\Pr[\mathsf{Hyb}_{2}=1]}={\mathsf{negl}}(\lambda) follows from the security of 𝖢𝖣𝖲𝖪𝖤\mathsf{CDSKE} under the key 𝖼𝖽.𝗌𝗄j\mathsf{cd}.\mathsf{sk}_{j^{*}}.

𝖧𝗒𝖻3\mathsf{Hyb}_{3}:

This hybrid is the same as 𝖧𝗒𝖻2\mathsf{Hyb}_{2} except that the challenger generates 𝖼𝗍j\mathsf{ct}^{*}_{j^{*}} included in 𝗌𝗄𝗅.𝖼𝗍\mathsf{skl}.\mathsf{ct}^{*} as 𝖼𝗍j𝖤𝗇𝖼(𝗆𝗌𝗄j,x1)\mathsf{ct}^{*}_{j^{*}}\leftarrow\mathsf{Enc}(\mathsf{msk}_{j^{*}},x_{1}^{*}).

By the previous transition, in 𝖧𝗒𝖻2\mathsf{Hyb}_{2} and 𝖧𝗒𝖻3\mathsf{Hyb}_{3}, 𝒜\mathpzc{A} can obtain a decryption key under 𝗆𝗌𝗄j\mathsf{msk}_{j^{*}} for a function ff such that f(x0)=f(x1)f(x_{0}^{*})=f(x_{1}^{*}). Thus, |Pr[𝖧𝗒𝖻2=1]Pr[𝖧𝗒𝖻3=1]|=𝗇𝖾𝗀𝗅(λ)\absolutevalue{\Pr[\mathsf{Hyb}_{2}=1]-\Pr[\mathsf{Hyb}_{3}=1]}={\mathsf{negl}}(\lambda) holds from the security of 𝖲𝖪𝖥𝖤\mathsf{SKFE}.

𝖧𝗒𝖻4\mathsf{Hyb}_{4}:

This hybrid is the same as 𝖧𝗒𝖻3\mathsf{Hyb}_{3} except that we undo the changes from 𝖧𝗒𝖻0\mathsf{Hyb}_{0} to 𝖧𝗒𝖻2\mathsf{Hyb}_{2}. 𝖧𝗒𝖻4\mathsf{Hyb}_{4} is the same as 𝖤𝗑𝗉𝒜,𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫𝗌𝖾𝗅-𝗌-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,1)\mathsf{Exp}_{\mathpzc{A},\mathsf{iSKFE\textrm{-}sbSKL}}^{\mathsf{sel}\mbox{-}\mathsf{s}\mbox{-}\mathsf{lessor}}(1^{\lambda},1).

|Pr[𝖧𝗒𝖻3=1]Pr[𝖧𝗒𝖻4=1]|=𝗇𝖾𝗀𝗅(λ)\absolutevalue{\Pr[\mathsf{Hyb}_{3}=1]-\Pr[\mathsf{Hyb}_{4}=1]}={\mathsf{negl}}(\lambda) holds from the security of 𝖥\mathsf{F} and 𝖢𝖣𝖲𝖪𝖤\mathsf{CDSKE}.

From the above discussions, 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL} satisfies selective lessor security.   

5 SKFE with Static-Bound Secure Key Leasing

We construct an SKFE-sbSKL scheme 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫=(𝗌𝖻𝖲𝖪𝖫.𝖲𝖾𝗍𝗎𝗉,𝗌𝖻𝖲𝖪𝖫.𝒦𝒢,𝗌𝖻𝖲𝖪𝖫.𝖤𝗇𝖼,𝗌𝖻𝖲𝖪𝖫.𝒟𝒸,𝗌𝖻𝖲𝖪𝖫.𝒞𝓇𝓉,𝗌𝖻𝖲𝖪𝖫.𝖵𝗋𝖿𝗒)\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}=(\mathsf{sbSKL}.\mathsf{Setup},\mathsf{sbSKL}.\mathpzc{KG},\allowbreak\mathsf{sbSKL}.\mathsf{Enc},\mathsf{sbSKL}.\mathpzc{Dec},\allowbreak\mathsf{sbSKL}.\mathpzc{Cert},\mathsf{sbSKL}.\mathsf{Vrfy}) from the following tools:

  • An index-based SKFE-sbSKL scheme 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫=(𝗂𝖲𝖾𝗍𝗎𝗉,𝒾𝒦𝒢,𝗂𝖤𝗇𝖼,𝒾𝒟𝒸,𝒾𝒞𝓇𝓉,𝗂𝖵𝗋𝖿𝗒)\mathsf{iSKFE\textrm{-}sbSKL}=(\mathsf{iSetup},\mathpzc{iKG},\mathsf{iEnc},\allowbreak\mathpzc{iDec},\allowbreak\mathpzc{iCert},\mathsf{iVrfy}).

  • A set homomorphic secret sharing 𝖲𝖾𝗍𝖧𝖲𝖲=(𝖲𝖾𝗍𝖦𝖾𝗇,𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾,𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾,𝖣𝖾𝖼𝗈𝖽𝖾)\mathsf{SetHSS}=(\mathsf{SetGen},\mathsf{InpEncode},\mathsf{FuncEncode},\allowbreak\mathsf{Decode}).

  • An SKE scheme 𝖲𝖪𝖤=(𝖤,𝖣)\mathsf{SKE}=(\mathsf{E},\mathsf{D}).

The description of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} is as follows.

𝗌𝖻𝖲𝖪𝖫.𝖲𝖾𝗍𝗎𝗉(1λ,1q,n)\mathsf{sbSKL}.\mathsf{Setup}(1^{\lambda},1^{q},n):

  • Generate 𝗉𝖺𝗋𝖺𝗆𝗌(p,,(Ti)i[m])𝖲𝖾𝗍𝖦𝖾𝗇(1λ)\mathsf{params}\coloneqq(p,\ell,(T_{i})_{i\in[m]})\leftarrow\mathsf{SetGen}(1^{\lambda}).

  • Generate 𝗆𝗌𝗄i𝗂𝖲𝖾𝗍𝗎𝗉(1λ,1q,N)\mathsf{msk}_{i}\leftarrow\mathsf{iSetup}(1^{\lambda},1^{q},N) for every i[m]i\in[m], where N=n/pN=n/p.

  • Generate K{0,1}λK\leftarrow\{0,1\}^{\lambda}.

  • Output 𝗌𝖻𝗌𝗄𝗅.𝗆𝗌𝗄(𝗉𝖺𝗋𝖺𝗆𝗌,N,(𝗆𝗌𝗄)i[m],K)\mathsf{sbskl}.\mathsf{msk}\coloneqq(\mathsf{params},N,(\mathsf{msk})_{i\in[m]},K).

𝗌𝖻𝖲𝖪𝖫.𝒦𝒢(𝗌𝖻𝗌𝗄𝗅.𝗆𝗌𝗄,𝒻)\mathsf{sbSKL}.\mathpzc{KG}(\mathsf{sbskl}.\mathsf{msk},f):

  • Parse (𝗉𝖺𝗋𝖺𝗆𝗌,N,(𝗆𝗌𝗄)i[m],K)𝗌𝖻𝗌𝗄𝗅.𝗆𝗌𝗄(\mathsf{params},N,(\mathsf{msk})_{i\in[m]},K)\leftarrow\mathsf{sbskl}.\mathsf{msk}.

  • Generate 𝗌𝖼𝗍i𝖤(K,𝟎)\mathsf{sct}_{i}\leftarrow\mathsf{E}(K,\boldsymbol{0}) for every i[m]i\in[m].

  • Generate (fi)i[m]𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,f)(f_{i})_{i\in[m]}\leftarrow\mathsf{FuncEncode}(\mathsf{params},f).

  • Generate (𝒻𝓈𝓀𝒾,𝗏𝗄𝒾)𝒾𝒦𝒢(𝗆𝗌𝗄𝒾,[𝒻𝒾,𝗌𝖼𝗍𝒾])(\mathpzc{fsk}_{i},\mathsf{vk}_{i})\leftarrow\mathpzc{iKG}(\mathsf{msk}_{i},F[f_{i},\mathsf{sct}_{i}]) for every i[m]i\in[m], where the circuit FF is described in Figure 1.

  • Output 𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀(𝒻𝓈𝓀𝒾)𝒾[𝓂]\mathsf{sbskl}.\mathpzc{fsk}\coloneqq(\mathpzc{fsk}_{i})_{i\in[m]} and 𝗌𝖻𝗌𝗄𝗅.𝗏𝗄(𝗏𝗄i)i[m]\mathsf{sbskl}.\mathsf{vk}\coloneqq(\mathsf{vk}_{i})_{i\in[m]}.

𝗌𝖻𝖲𝖪𝖫.𝖤𝗇𝖼(𝗌𝖻𝗌𝗄𝗅.𝗆𝗌𝗄,x)\mathsf{sbSKL}.\mathsf{Enc}(\mathsf{sbskl}.\mathsf{msk},x):

  • Parse (𝗉𝖺𝗋𝖺𝗆𝗌,N,(𝗆𝗌𝗄)i[m],K)𝗌𝖻𝗌𝗄𝗅.𝗆𝗌𝗄(\mathsf{params},N,(\mathsf{msk})_{i\in[m]},K)\leftarrow\mathsf{sbskl}.\mathsf{msk}.

  • Generate (si)i[m]𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,x)(s_{i})_{i\in[m]}\leftarrow\mathsf{InpEncode}(\mathsf{params},x).

  • Generate ji[N]j_{i}\leftarrow[N] for every i[m]i\in[m].

  • Generate 𝖼𝗍i𝗂𝖤𝗇𝖼(𝗆𝗌𝗄i,ji,(si,𝟎,0))\mathsf{ct}_{i}\leftarrow\mathsf{iEnc}(\mathsf{msk}_{i},j_{i},(s_{i},\boldsymbol{0},0)) for every i[m]i\in[m].

  • Output 𝗌𝖻𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍i)i[m]\mathsf{sbskl}.\mathsf{ct}\coloneqq(\mathsf{ct}_{i})_{i\in[m]}.

𝗌𝖻𝖲𝖪𝖫.𝒟𝒸(𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀,𝗌𝖻𝗌𝗄𝗅.𝖼𝗍)\mathsf{sbSKL}.\mathpzc{Dec}(\mathsf{sbskl}.\mathpzc{fsk},\mathsf{sbskl}.\mathsf{ct}):

  • Parse (𝒻𝓈𝓀𝒾)𝒾[𝓂]𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀(\mathpzc{fsk}_{i})_{i\in[m]}\leftarrow\mathsf{sbskl}.\mathpzc{fsk} and (𝖼𝗍i)i[m]𝗌𝖻𝗌𝗄𝗅.𝖼𝗍(\mathsf{ct}_{i})_{i\in[m]}\leftarrow\mathsf{sbskl}.\mathsf{ct}.

  • Compute y𝑰𝒾𝒟𝒸(𝒻𝓈𝓀𝒾,𝖼𝗍𝒾)y_{{\boldsymbol{I}}}\leftarrow\mathpzc{iDec}(\mathpzc{fsk}_{i},\mathsf{ct}_{i}) for every i[m]i\in[m].

  • Output y𝖣𝖾𝖼𝗈𝖽𝖾((yi)i[m])y\leftarrow\mathsf{Decode}((y_{i})_{i\in[m]}).

𝗌𝖻𝖲𝖪𝖫.𝒞𝓇𝓉(𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀)\mathsf{sbSKL}.\mathpzc{Cert}(\mathsf{sbskl}.\mathpzc{fsk}):

  • Parse (𝒻𝓈𝓀𝒾)𝒾[𝓂]𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀(\mathpzc{fsk}_{i})_{i\in[m]}\leftarrow\mathsf{sbskl}.\mathpzc{fsk}.

  • Compute 𝖼𝖾𝗋𝗍i𝒾𝒞𝓇𝓉(𝒻𝓈𝓀𝒾)\mathsf{cert}_{i}\leftarrow\mathpzc{iCert}(\mathpzc{fsk}_{i}) for every i[m]i\in[m].

  • Output 𝗌𝖻𝗌𝗄𝗅.𝖼𝖾𝗋𝗍(𝖼𝖾𝗋𝗍i)i[m]\mathsf{sbskl}.\mathsf{cert}\coloneqq(\mathsf{cert}_{i})_{i\in[m]}.

𝗌𝖻𝖲𝖪𝖫.𝖵𝗋𝖿𝗒(𝗌𝖻𝗌𝗄𝗅.𝗏𝗄,𝗌𝖻𝗌𝗄𝗅.𝖼𝖾𝗋𝗍)\mathsf{sbSKL}.\mathsf{Vrfy}(\mathsf{sbskl}.\mathsf{vk},\mathsf{sbskl}.\mathsf{cert}):

  • Parse (𝗏𝗄i)i[m]𝗌𝖻𝗌𝗄𝗅.𝗏𝗄(\mathsf{vk}_{i})_{i\in[m]}\leftarrow\mathsf{sbskl}.\mathsf{vk} and (𝖼𝖾𝗋𝗍i)i[m]𝗌𝖻𝗌𝗄𝗅.𝖼𝖾𝗋𝗍(\mathsf{cert}_{i})_{i\in[m]}\leftarrow\mathsf{sbskl}.\mathsf{cert}.

  • Output \top if =𝗂𝖵𝗋𝖿𝗒(𝗏𝗄i,𝖼𝖾𝗋𝗍i)\top=\mathsf{iVrfy}(\mathsf{vk}_{i},\mathsf{cert}_{i}) for every i[m]i\in[m], and otherwise \bot.

Circuit F[fi,𝗌𝖼𝗍i](si,K,b)F[f_{i},\mathsf{sct}_{i}](s_{i},K,b) Hardwired: A function share fif_{i} and an 𝖲𝖪𝖤\mathsf{SKE}’s ciphertext 𝗌𝖼𝗍i\mathsf{sct}_{i}. Input: an input share sis_{i}, an 𝖲𝖪𝖤\mathsf{SKE}’s secret key KK, and a bit bb. 1. If b=1b=1, output 𝖣(K,𝗌𝖼𝗍i)\mathsf{D}(K,\mathsf{sct}_{i}). 2. Otherwise, output fi(si)f_{i}(s_{i}).

Figure 1: Description of F[fi,𝗌𝖼𝗍i](si,K,b)F[f_{i},\mathsf{sct}_{i}](s_{i},K,b).

We show the correctness of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}. Let 𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀(𝒻𝓈𝓀𝒾)𝒾[𝓂]\mathsf{sbskl}.\mathpzc{fsk}\coloneqq(\mathpzc{fsk}_{i})_{i\in[m]} be a decryption key for ff and let 𝗌𝖻𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍i)i[m]\mathsf{sbskl}.\mathsf{ct}\coloneqq(\mathsf{ct}_{i})_{i\in[m]} be a ciphertext of xx. From the correctness of 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL}, we obtain fi(si)f_{i}(s_{i}) by decrypting 𝖼𝗍i\mathsf{ct}_{i} with 𝒻𝓈𝓀𝒾\mathpzc{fsk}_{i} for every i[m]i\in[m], where (fi)i[m]𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,f)(f_{i})_{i\in[m]}\leftarrow\mathsf{FuncEncode}(\mathsf{params},f) and (si)i[m]𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,x)(s_{i})_{i\in[m]}\leftarrow\mathsf{InpEncode}(\mathsf{params},x). Thus, we obtains f(x)𝖣𝖾𝖼𝗈𝖽𝖾((fi(si))i[m])f(x)\leftarrow\mathsf{Decode}((f_{i}(s_{i}))_{i\in[m]}) from the correctness of 𝖲𝖾𝗍𝖧𝖲𝖲\mathsf{SetHSS}. It is clear that 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} also satisfies verification correctness.

Also, the weak optimal efficiency of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} easily follows from that of 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL} since the running time of algorithms of 𝖲𝖾𝗍𝖧𝖲𝖲\mathsf{SetHSS} is independent of nn. Note that 𝗌𝖻𝖲𝖪𝖫.𝖤𝗇𝖼\mathsf{sbSKL}.\mathsf{Enc} samples indices from [N]=[n/p][N]=[n/p], but it can be done in time logn\log n.

For security, we have the following theorems.

Theorem 5.1.

If 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL} is a selectively strong lessor secure index-based SKFE-sbSKL scheme and 𝖲𝖾𝗍𝖧𝖲𝖲\mathsf{SetHSS} is a set homomorphic secret sharing scheme, and 𝖲𝖪𝖤\mathsf{SKE} is a CPA secure SKE scheme, then 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} is selectively strong lessor secure.

Proof of Theorem 5.1.

We define a sequence of hybrid games to prove the theorem.

𝖧𝗒𝖻0\mathsf{Hyb}_{0}:

This is the same as 𝖤𝗑𝗉𝒜,𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫𝗌𝖾𝗅-𝗌-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,0)\mathsf{Exp}_{\mathpzc{A},\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}}^{\mathsf{sel}\mbox{-}\mathsf{s}\mbox{-}\mathsf{lessor}}(1^{\lambda},0).

  1. 1.

    At the beginning, 𝒜\mathpzc{A} sends (1q,n,x0,x1)(1^{q},n,x_{0}^{*},x_{1}^{*}) to the challenger. The challenger generates 𝗉𝖺𝗋𝖺𝗆𝗌(p,,(Ti)i[m])𝖲𝖾𝗍𝖦𝖾𝗇(1λ)\mathsf{params}\coloneqq(p,\ell,(T_{i})_{i\in[m]})\leftarrow\mathsf{SetGen}(1^{\lambda}), 𝗆𝗌𝗄i𝗂𝖲𝖾𝗍𝗎𝗉(1λ,1q,N)\mathsf{msk}_{i}\leftarrow\mathsf{iSetup}(1^{\lambda},1^{q},N) for every i[m]i\in[m], and K{0,1}λK\leftarrow\{0,1\}^{\lambda}, where N=n/pN=n/p. Throughout the experiment, 𝒜\mathpzc{A} can access the following oracles.

    O𝖤𝗇𝖼(xk)O_{\mathtt{\mathsf{Enc}}}(x^{k}):

    Given the kk-th query xkx^{k}, it returns 𝗌𝖻𝗌𝗄𝗅.𝖼𝗍k\mathsf{sbskl}.\mathsf{ct}^{k} generated as follows.

    • Generate (sik)i[m]𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,xk)(s^{k}_{i})_{i\in[m]}\leftarrow\mathsf{InpEncode}(\mathsf{params},x^{k}).

    • Generate jik[N]j^{k}_{i}\leftarrow[N] for every i[m]i\in[m].

    • Generate 𝖼𝗍ik𝗂𝖤𝗇𝖼(𝗆𝗌𝗄,i,jik,(sik,𝟎,0))\mathsf{ct}^{k}_{i}\leftarrow\mathsf{iEnc}(\mathsf{msk},i,j^{k}_{i},(s^{k}_{i},\boldsymbol{0},0)) for every i[m]i\in[m].

    • Set 𝗌𝖻𝗌𝗄𝗅.𝖼𝗍k(𝖼𝗍ik)i[m]\mathsf{sbskl}.\mathsf{ct}^{k}\coloneqq(\mathsf{ct}^{k}_{i})_{i\in[m]}.

    O𝒦𝒢(f)O_{\mathtt{\mathpzc{KG}}}(f):

    Given ff, it generates 𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀\mathsf{sbskl}.\mathpzc{fsk} and 𝗌𝖻𝗌𝗄𝗅.𝗏𝗄\mathsf{sbskl}.\mathsf{vk} as follows.

    • Generate (fi)i[m]𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,f)(f_{i})_{i\in[m]}\leftarrow\mathsf{FuncEncode}(\mathsf{params},f).

    • Generate 𝗌𝖼𝗍i𝖤(K,𝟎)\mathsf{sct}_{i}\leftarrow\mathsf{E}(K,\boldsymbol{0}) for every i[m]i\in[m].

    • Generate (𝒻𝓈𝓀𝒾,𝗏𝗄𝒾)𝒾𝒦𝒢(𝗆𝗌𝗄𝒾,[𝒻𝒾,𝗌𝖼𝗍𝒾])(\mathpzc{fsk}_{i},\mathsf{vk}_{i})\leftarrow\mathpzc{iKG}(\mathsf{msk}_{i},F[f_{i},\mathsf{sct}_{i}]) for every i[m]i\in[m].

    • Set 𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀(𝒻𝓈𝓀𝒾)𝒾[𝓂]\mathsf{sbskl}.\mathpzc{fsk}\coloneqq(\mathpzc{fsk}_{i})_{i\in[m]} and 𝗌𝖻𝗌𝗄𝗅.𝗏𝗄(𝗏𝗄i)i[m]\mathsf{sbskl}.\mathsf{vk}\coloneqq(\mathsf{vk}_{i})_{i\in[m]}.

    It sends 𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀\mathsf{sbskl}.\mathpzc{fsk} to 𝒜\mathpzc{A} and adds (f,𝗌𝖻𝗌𝗄𝗅.𝗏𝗄,)(f,\mathsf{sbskl}.\mathsf{vk},\bot) to L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}.

    O𝖵𝗋𝖿𝗒(f,𝖼𝖾𝗋𝗍(𝖼𝖾𝗋𝗍i)i[m])O_{\mathtt{\mathsf{Vrfy}}}(f,\mathsf{cert}\coloneqq(\mathsf{cert}_{i})_{i\in[m]}):

    Given (f,𝖼𝖾𝗋𝗍(𝖼𝖾𝗋𝗍i)i[m])(f,\mathsf{cert}\coloneqq(\mathsf{cert}_{i})_{i\in[m]}), it finds an entry (f,𝗏𝗄,M)(f,\mathsf{vk},M) from L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. (If there is no such entry, it returns \bot.) If =𝖵𝗋𝖿𝗒(𝗏𝗄i,𝖼𝖾𝗋𝗍i)\top=\mathsf{Vrfy}(\mathsf{vk}_{i},\mathsf{cert}_{i}) for every i[m]i\in[m], it returns \top and updates the entry into (f,𝗏𝗄,)(f,\mathsf{vk},\top). Otherwise, it returns \bot.

  2. 2.

    When 𝒜\mathpzc{A} requests the challenge ciphertext, the challenger checks if for any entry (f,𝗏𝗄,M)(f,\mathsf{vk},M) in L𝒦𝒢L_{\mathtt{\mathpzc{KG}}} such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), it holds that M=M=\top, and the number of queries to O𝖤𝗇𝖼O_{\mathtt{\mathsf{Enc}}} at this point is less than nn. If so, the challenger sends 𝗌𝖻𝗌𝗄𝗅.𝖼𝗍\mathsf{sbskl}.\mathsf{ct}^{*} computed as follows to 𝒜\mathpzc{A}.

    • Generate (si)i[m]𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,x0)(s^{*}_{i})_{i\in[m]}\leftarrow\mathsf{InpEncode}(\mathsf{params},x_{0}^{*}).

    • Generate ji[N]j^{*}_{i}\leftarrow[N] for every i[m]i\in[m].

    • Generate 𝖼𝗍i𝗂𝖤𝗇𝖼(𝗆𝗌𝗄i,(si,𝟎,0))\mathsf{ct}^{*}_{i}\leftarrow\mathsf{iEnc}(\mathsf{msk}_{i},(s^{*}_{i},\boldsymbol{0},0)) for every i[m]i\in[m].

    • Set 𝗌𝖻𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍i)i[m]\mathsf{sbskl}.\mathsf{ct}^{*}\coloneqq(\mathsf{ct}^{*}_{i})_{i\in[m]}.

    Otherwise, the challenger outputs 0. Hereafter, 𝒜\mathpzc{A} is not allowed to sends a function ff such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}) to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}.

  3. 3.

    𝒜\mathpzc{A} outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}. The challenger outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} as the final output of the experiment.

Below, we call i[m]i\in[m] a secure instance index if jijikj_{i}^{*}\neq j_{i}^{k} holds for every k[n]k\in[n]. We also call i[m]i\in[m] an insecure instance index if it is not a secure instance index. Let S𝚜𝚎𝚌𝚞𝚛𝚎[m]S_{\mathtt{secure}}\subseteq[m] be the set of secure instance indices, and S𝚒𝚗𝚜𝚎𝚌𝚞𝚛𝚎=SS𝚜𝚎𝚌𝚞𝚛𝚎S_{\mathtt{insecure}}=S\setminus S_{\mathtt{secure}}. Since each jikj_{i}^{k} is sampled from [N]=[n/p][N]=[n/p], for each i[m]i\in[m], ii is independently included in S𝚒𝚗𝚜𝚎𝚌𝚞𝚛𝚎S_{\mathtt{insecure}} with probability at most n/N=pn/N=p. Then, from the existence of unmarked element property of 𝖲𝖾𝗍𝖧𝖲𝖲\mathsf{SetHSS}, without negligible probability, there exists e[]e\in[\ell] such that eiS𝚒𝚗𝚜𝚎𝚌𝚞𝚛𝚎Tie\notin\bigcup_{i\in S_{\mathtt{insecure}}}T_{i}. Below, for simplicity, we assume that there always exists at least one such instance index, and we denote it as ee^{*}.

𝖧𝗒𝖻1\mathsf{Hyb}_{1}:

This is the same as 𝖧𝗒𝖻0\mathsf{Hyb}_{0} except that we generate jikj_{i}^{k} for every i[m]i\in[m] and k[n]k\in[n] and jij_{i}^{*} for every i[m]i\in[m] at the beginning of the experiment. Note that by this change, secure instance indices and ii^{*} are determined at the beginning of the experiment.

|Pr[𝖧𝗒𝖻0=1]Pr[𝖧𝗒𝖻1=1]|=0\absolutevalue{\Pr[\mathsf{Hyb}_{0}=1]-\Pr[\mathsf{Hyb}_{1}=1]}=0 holds since the change at this step is only conceptual.

𝖧𝗒𝖻2\mathsf{Hyb}_{2}:

This is the same as 𝖧𝗒𝖻1\mathsf{Hyb}_{1} except that when 𝒜\mathpzc{A} makes a query ff to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}, if f(x0)=f(x1)f(x_{0}^{*})=f(x_{1}^{*}), it generates 𝗌𝖼𝗍i\mathsf{sct}_{i} as 𝗌𝖼𝗍i𝖤(K,fi(si))\mathsf{sct}_{i}\leftarrow\mathsf{E}(K,f_{i}(s^{*}_{i})) for every iS𝚜𝚎𝚌𝚞𝚛𝚎i\in S_{\mathtt{secure}}.

|Pr[𝖧𝗒𝖻1=1]Pr[𝖧𝗒𝖻2=1]|=𝗇𝖾𝗀𝗅(λ)\absolutevalue{\Pr[\mathsf{Hyb}_{1}=1]-\Pr[\mathsf{Hyb}_{2}=1]}={\mathsf{negl}}(\lambda) holds from the security of 𝖲𝖪𝖤\mathsf{SKE}.

𝖧𝗒𝖻3\mathsf{Hyb}_{3}:

This is the same as 𝖧𝗒𝖻2\mathsf{Hyb}_{2} except that the challenger generates 𝖼𝗍i\mathsf{ct}^{*}_{i} as 𝖼𝗍i𝗂𝖤𝗇𝖼(𝗆𝗌𝗄i,ji,(𝟎,K,1))\mathsf{ct}^{*}_{i}\leftarrow\mathsf{iEnc}(\mathsf{msk}_{i},j^{*}_{i},(\boldsymbol{0},K,1)) for every iS𝚜𝚎𝚌𝚞𝚛𝚎i\in S_{\mathtt{secure}}.

|Pr[𝖧𝗒𝖻2=1]Pr[𝖧𝗒𝖻3=1]|=𝗇𝖾𝗀𝗅(λ)\absolutevalue{\Pr[\mathsf{Hyb}_{2}=1]-\Pr[\mathsf{Hyb}_{3}=1]}={\mathsf{negl}}(\lambda) holds from the selective lessor security of 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL}. We provide the proof of it in Proposition 5.2.

𝖧𝗒𝖻4\mathsf{Hyb}_{4}:

This is the same as 𝖧𝗒𝖻3\mathsf{Hyb}_{3} except that the challenger generates (si)i[m](s^{*}_{i})_{i\in[m]} as (si)i[m]𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,x1)(s^{*}_{i})_{i\in[m]}\leftarrow\mathsf{InpEncode}(\mathsf{params},x_{1}^{*}).

|Pr[𝖧𝗒𝖻3=1]Pr[𝖧𝗒𝖻4=1]|=𝗇𝖾𝗀𝗅(λ)\absolutevalue{\Pr[\mathsf{Hyb}_{3}=1]-\Pr[\mathsf{Hyb}_{4}=1]}={\mathsf{negl}}(\lambda) holds from the selective indistinguishability-security of 𝖲𝖾𝗍𝖧𝖲𝖲\mathsf{SetHSS}. We provide the proof of it in Proposition 5.3.

𝖧𝗒𝖻5\mathsf{Hyb}_{5}:

This is the same as 𝖧𝗒𝖻4\mathsf{Hyb}_{4} except that we undo the changes from 𝖧𝗒𝖻0\mathsf{Hyb}_{0} to 𝖧𝗒𝖻3\mathsf{Hyb}_{3}. This is the same experiment as 𝖤𝗑𝗉𝒜,𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫𝗌𝖾𝗅-𝗌-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,1)\mathsf{Exp}_{\mathpzc{A},\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}}^{\mathsf{sel}\mbox{-}\mathsf{s}\mbox{-}\mathsf{lessor}}(1^{\lambda},1).

|Pr[𝖧𝗒𝖻4=1]Pr[𝖧𝗒𝖻5=1]|=𝗇𝖾𝗀𝗅(λ)\absolutevalue{\Pr[\mathsf{Hyb}_{4}=1]-\Pr[\mathsf{Hyb}_{5}=1]}={\mathsf{negl}}(\lambda) holds from the security of 𝖲𝖪𝖤\mathsf{SKE} and 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL}.

Proposition 5.2.

|Pr[𝖧𝗒𝖻2=1]Pr[𝖧𝗒𝖻3=1]|=𝗇𝖾𝗀𝗅(λ)\absolutevalue{\Pr[\mathsf{Hyb}_{2}=1]-\Pr[\mathsf{Hyb}_{3}=1]}={\mathsf{negl}}(\lambda) holds if 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL} is selectively lessor secure.

Proof of Proposition 5.2.

We define intermediate experiments 𝖧𝗒𝖻2,i\mathsf{Hyb}_{2,i^{\prime}} between 𝖧𝗒𝖻2\mathsf{Hyb}_{2} and 𝖧𝗒𝖻3\mathsf{Hyb}_{3} for i[m]i^{\prime}\in[m].

𝖧𝗒𝖻2,i\mathsf{Hyb}_{2,i^{\prime}}:

This is the same as 𝖧𝗒𝖻2\mathsf{Hyb}_{2} except that the challenger generates 𝖼𝗍i\mathsf{ct}^{*}_{i} as 𝖼𝗍i𝗂𝖤𝗇𝖼(𝗆𝗌𝗄i,ji,(𝟎,K,1))\mathsf{ct}^{*}_{i}\leftarrow\mathsf{iEnc}(\mathsf{msk}_{i},j^{*}_{i},(\boldsymbol{0},K,1)) for every ii such that iS𝚜𝚎𝚌𝚞𝚛𝚎i\in S_{\mathtt{secure}} and iii\leq i^{\prime}.

Then, we have

|Pr[𝖧𝗒𝖻2=1]Pr[𝖧𝗒𝖻3=1]|im|Pr[𝖧𝗒𝖻2,i1=1iS𝚜𝚎𝚌𝚞𝚛𝚎]Pr[𝖧𝗒𝖻2,i=1iS𝚜𝚎𝚌𝚞𝚛𝚎]|,\displaystyle\absolutevalue{\Pr[\mathsf{Hyb}_{2}=1]-\Pr[\mathsf{Hyb}_{3}=1]}\leq\sum_{i^{\prime}\in m}\absolutevalue{\Pr[\mathsf{Hyb}_{2,i^{\prime}-1}=1\land i^{\prime}\in S_{\mathtt{secure}}]-\Pr[\mathsf{Hyb}_{2,i}=1\land i^{\prime}\in S_{\mathtt{secure}}]}, (31)

where we define 𝖧𝗒𝖻2,0=𝖧𝗒𝖻2\mathsf{Hyb}_{2,0}=\mathsf{Hyb}_{2} and 𝖧𝗒𝖻2,m=𝖧𝗒𝖻3\mathsf{Hyb}_{2,m}=\mathsf{Hyb}_{3}. To estimate each term of Equation 31, we construct the following adversary \mathpzc{B} that attacks selective lessor security of 𝗂𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{iSKFE\textrm{-}sbSKL}.

  1. 1.

    \mathpzc{B} executes 𝒜\mathpzc{A} and obtains (1q,n,x0,x1)(1^{q},n,x_{0}^{*},x_{1}^{*}). \mathpzc{B} generates 𝗉𝖺𝗋𝖺𝗆𝗌(p,,(Ti)i[m])𝖲𝖾𝗍𝖦𝖾𝗇(1λ)\mathsf{params}\coloneqq(p,\ell,(T_{i})_{i\in[m]})\leftarrow\mathsf{SetGen}(1^{\lambda}). \mathpzc{B} generates jik[N]j_{i}^{k}\leftarrow[N] for every i[m]i\in[m] and k[n]k\in[n] and ji[N]j_{i}^{*}\leftarrow[N] for every i[m]i\in[m], and identifies S𝚜𝚎𝚌𝚞𝚛𝚎S_{\mathtt{secure}} and S𝚒𝚗𝚜𝚎𝚌𝚞𝚛𝚎S_{\mathtt{insecure}}, where N=n/pN=n/p. If iS𝚜𝚎𝚌𝚞𝚛𝚎i^{\prime}\notin S_{\mathtt{secure}}, \mathpzc{B} aborts with output 0. Otherwise, \mathpzc{B} behaves as follows. Below, we let S𝚜𝚎𝚌𝚞𝚛𝚎,<i=S𝚜𝚎𝚌𝚞𝚛𝚎[i1]S_{\mathtt{secure},<i^{\prime}}=S_{\mathtt{secure}}\cap[i^{\prime}-1]. \mathpzc{B} computes (si)i[m]𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,x0)(s_{i}^{*})_{i\in[m]}\leftarrow\mathsf{InpEncode}(\mathsf{params},x_{0}^{*}). \mathpzc{B} also generates K{0,1}λK\leftarrow\{0,1\}^{\lambda}. \mathpzc{B} sends (1q,N,ji,(si,𝟎,0),(𝟎,K,1))(1^{q},N,j_{i^{\prime}}^{*},\allowbreak(s^{*}_{i^{\prime}},\boldsymbol{0},0),(\boldsymbol{0},K,1)). \mathpzc{B} also generates 𝗆𝗌𝗄i𝗂𝖲𝖾𝗍𝗎𝗉(1λ,1q,N)\mathsf{msk}_{i}\leftarrow\mathsf{iSetup}(1^{\lambda},1^{q},N) for every i[m]{i}i\in[m]\setminus\{i^{\prime}\}. \mathpzc{B} simulates oracles for 𝒜\mathpzc{A} as follows.

    O𝖤𝗇𝖼(xk)O_{\mathtt{\mathsf{Enc}}}(x^{k}):

    Given the kk-th query xkx^{k}, \mathpzc{B} returns 𝗌𝖻𝗌𝗄𝗅.𝖼𝗍k\mathsf{sbskl}.\mathsf{ct}^{k} generated as follows.

    • Generate (sik)i[m]𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,xk)(s^{k}_{i})_{i\in[m]}\leftarrow\mathsf{InpEncode}(\mathsf{params},x^{k}).

    • If knk\leq n, use (jik)i[m](j_{i}^{k})_{i\in[m]} generated at the beginning. Otherwise, Generate jik[N]j^{k}_{i}\leftarrow[N] for every i[m]i\in[m].

    • Query (jik,(sik,𝟎,0))(j^{k}_{i^{\prime}},(s^{k}_{i^{\prime}},\boldsymbol{0},0)) to its encryption oracle and obtain 𝖼𝗍ik\mathsf{ct}^{k}_{i^{\prime}}.

    • Generate 𝖼𝗍ik𝗂𝖤𝗇𝖼(𝗆𝗌𝗄i,jik,(sik,𝟎,0))\mathsf{ct}^{k}_{i}\leftarrow\mathsf{iEnc}(\mathsf{msk}_{i},j_{i}^{k},(s^{k}_{i},\boldsymbol{0},0)) for every i[m]{i}i\in[m]\setminus\{i^{\prime}\}.

    • Set 𝗌𝖻𝗌𝗄𝗅.𝖼𝗍k(𝖼𝗍ik)i[m]\mathsf{sbskl}.\mathsf{ct}^{k}\coloneqq(\mathsf{ct}^{k}_{i})_{i\in[m]}.

    O𝒦𝒢(f)O_{\mathtt{\mathpzc{KG}}}(f):

    Given ff, \mathpzc{B} returns 𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀\mathsf{sbskl}.\mathpzc{fsk} computed as follows.

    • Generate (fi)i[m]𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,f)(f_{i})_{i\in[m]}\leftarrow\mathsf{FuncEncode}(\mathsf{params},f).

    • Generate 𝗌𝖼𝗍i𝖤(K,𝟎)\mathsf{sct}_{i}\leftarrow\mathsf{E}(K,\boldsymbol{0}) for every iS𝚒𝚗𝚜𝚎𝚌𝚞𝚛𝚎i\in S_{\mathtt{insecure}}. Generate also 𝗌𝖼𝗍i𝖤(K,fi(si))\mathsf{sct}_{i}\leftarrow\mathsf{E}(K,f_{i}(s_{i}^{*})) for every iS𝚜𝚎𝚌𝚞𝚛𝚎i\in S_{\mathtt{secure}} if f(x0)=f(x1)f(x_{0}^{*})=f(x_{1}^{*}), and otherwise generate 𝗌𝖼𝗍i𝖤(K,𝟎)\mathsf{sct}_{i}\leftarrow\mathsf{E}(K,\boldsymbol{0}) for every iS𝚜𝚎𝚌𝚞𝚛𝚎i\in S_{\mathtt{secure}}.

    • Query F[fi,𝗌𝖼𝗍i]F[f_{i^{\prime}},\mathsf{sct}_{i^{\prime}}] to its key generation oracle and obtain (𝒻𝓈𝓀𝒾,𝗏𝗄𝒾)(\mathpzc{fsk}_{i^{\prime}},\mathsf{vk}_{i^{\prime}}).

    • Generate (𝒻𝓈𝓀𝒾,𝗏𝗄𝒾)𝒾𝒦𝒢(𝗆𝗌𝗄𝒾,[𝒻𝒾,𝗌𝖼𝗍𝒾])(\mathpzc{fsk}_{i},\mathsf{vk}_{i})\leftarrow\mathpzc{iKG}(\mathsf{msk}_{i},F[f_{i},\mathsf{sct}_{i}]) for every i[m]{i}i\in[m]\setminus\{i^{\prime}\}.

    • Set 𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀(𝒻𝓈𝓀𝒾)𝒾[𝓂]\mathsf{sbskl}.\mathpzc{fsk}\coloneqq(\mathpzc{fsk}_{i})_{i\in[m]}.

    Also, \mathpzc{B} adds (f,(𝗏𝗄i)i[m]{i},)(f,(\mathsf{vk}_{i})_{i\in[m]\setminus\{i^{\prime}\}},\bot) to L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}.

    O𝖵𝗋𝖿𝗒(f,𝖼𝖾𝗋𝗍(𝖼𝖾𝗋𝗍i)i[m])O_{\mathtt{\mathsf{Vrfy}}}(f,\mathsf{cert}\coloneqq(\mathsf{cert}_{i})_{i\in[m]}):

    Given (f,𝖼𝖾𝗋𝗍(𝖼𝖾𝗋𝗍i)i[m])(f,\mathsf{cert}\coloneqq(\mathsf{cert}_{i})_{i\in[m]}), it finds an entry (f,(𝗏𝗄i)i[m]{i},)(f,(\mathsf{vk}_{i})_{i\in[m]\setminus\{i^{\prime}\}},\bot) from L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. (If there is no such entry, it returns \bot.) \mathpzc{B} sends (f,𝖼𝖾𝗋𝗍i)(f,\mathsf{cert}_{i^{\prime}}) to its verification oracle and obtains MiM_{i^{\prime}}. If M=M=\top and =𝖵𝗋𝖿𝗒(𝗏𝗄i,𝖼𝖾𝗋𝗍i)\top=\mathsf{Vrfy}(\mathsf{vk}_{i},\mathsf{cert}_{i}) for every i[m]{i}i\in[m]\setminus\{i^{\prime}\}, \mathpzc{B} returns \top and updates the entry into (f,(𝗏𝗄i)i[m]{i},)(f,(\mathsf{vk}_{i})_{i\in[m]\setminus\{i^{\prime}\}},\top). Otherwise, \mathpzc{B} returns \bot.

  2. 2.

    When 𝒜\mathpzc{A} requests the challenge ciphertext, \mathpzc{B} checks if for any entry (f,(𝗏𝗄i)i[m]{i},M)(f,(\mathsf{vk}_{i})_{i\in[m]\setminus\{i^{\prime}\}},M) in L𝒦𝒢L_{\mathtt{\mathpzc{KG}}} such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), it holds that M=M=\top. If so, \mathpzc{B} requests the challenge ciphertext to its challenger and obtains 𝖼𝗍i\mathsf{ct}_{i^{\prime}}^{*}. \mathpzc{B} also generates 𝖼𝗍i𝗂𝖤𝗇𝖼(𝗆𝗌𝗄i,ji,(𝟎,K,1))\mathsf{ct}^{*}_{i}\leftarrow\mathsf{iEnc}(\mathsf{msk}_{i},j_{i}^{*},(\boldsymbol{0},K,1)) for every iS𝚜𝚎𝚌𝚞𝚛𝚎,<ii\in S_{\mathtt{secure},<i^{\prime}} and 𝖼𝗍i𝗂𝖤𝗇𝖼(𝗆𝗌𝗄i,ji,(si,𝟎,0))\mathsf{ct}^{*}_{i}\leftarrow\mathsf{iEnc}(\mathsf{msk}_{i},j_{i}^{*},(s^{*}_{i},\boldsymbol{0},0)) for every i[m](S𝚜𝚎𝚌𝚞𝚛𝚎,<i{i})i\in[m]\setminus(S_{\mathtt{secure},<i^{\prime}}\cup\{i^{\prime}\}). \mathpzc{B} sends 𝗌𝖻𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍i)i[m]\mathsf{sbskl}.\mathsf{ct}\coloneqq(\mathsf{ct}^{*}_{i})_{i\in[m]} to 𝒜\mathpzc{A}. Hereafter, \mathpzc{B} rejects 𝒜\mathpzc{A}’s query ff to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}} such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}).

  3. 3.

    When 𝒜\mathpzc{A} outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}, \mathpzc{B} outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}.

\mathpzc{B} simulates 𝖧𝗒𝖻2,i1\mathsf{Hyb}_{2,i^{\prime}-1} (resp. 𝖧𝗒𝖻2,i\mathsf{Hyb}_{2,i^{\prime}}) if \mathpzc{B} runs in 𝖤𝗑𝗉,𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫𝗌𝖾𝗅-𝗌-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,0)\mathsf{Exp}_{\mathpzc{B},\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}}^{\mathsf{sel}\mbox{-}\mathsf{s}\mbox{-}\mathsf{lessor}}(1^{\lambda},0) (resp. 𝖤𝗑𝗉,𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫𝗌𝖾𝗅-𝗌-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,1)\mathsf{Exp}_{\mathpzc{B},\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}}^{\mathsf{sel}\mbox{-}\mathsf{s}\mbox{-}\mathsf{lessor}}(1^{\lambda},1)) and iS𝚜𝚎𝚌𝚞𝚛𝚎i^{\prime}\in S_{\mathtt{secure}}. This completes the proof.   

Proposition 5.3.

|Pr[𝖧𝗒𝖻3=1]Pr[𝖧𝗒𝖻4=1]|=𝗇𝖾𝗀𝗅(λ)\absolutevalue{\Pr[\mathsf{Hyb}_{3}=1]-\Pr[\mathsf{Hyb}_{4}=1]}={\mathsf{negl}}(\lambda) holds if 𝖲𝖾𝗍𝖧𝖲𝖲\mathsf{SetHSS} is a set homomorphic secret sharing.

Proof of Proposition 5.3.

We construct the following adversary \mathpzc{B} that attacks the selective indistinguishability-security of 𝖲𝖾𝗍𝖧𝖲𝖲\mathsf{SetHSS}.

  1. 1.

    Given 𝗉𝖺𝗋𝖺𝗆𝗌(p,,(Ti)i[m])\mathsf{params}\coloneqq(p,\ell,(T_{i})_{i\in[m]}), \mathpzc{B} executes 𝒜\mathpzc{A} and obtains (1q,n,x0,x1)(1^{q},n,x_{0}^{*},x_{1}^{*}). \mathpzc{B} generates jik[N]j_{i}^{k}\leftarrow[N] for every i[m]i\in[m] and k[n]k\in[n] and ji[N]j_{i}^{*}\leftarrow[N] for every i[m]i\in[m], and identifies S𝚜𝚎𝚌𝚞𝚛𝚎S_{\mathtt{secure}}, S𝚒𝚗𝚜𝚎𝚌𝚞𝚛𝚎S_{\mathtt{insecure}}, and the unmarked element ee^{*}, where N=n/pN=n/p. \mathpzc{B} sends (e,x0,x1)(e^{*},x_{0}^{*},x_{1}^{*}) to the challenger and obtains (si)i[m]e(s^{*}_{i})_{i\in[m]_{e^{*}\notin}}, where [m]e[m]_{e^{*}\notin} denotes the subset of [m][m] consisting of ii such that eTie^{*}\notin T_{i}. \mathpzc{B} also generates 𝗆𝗌𝗄i𝗂𝖲𝖾𝗍𝗎𝗉(1λ,1q,N)\mathsf{msk}_{i}\leftarrow\mathsf{iSetup}(1^{\lambda},1^{q},N) for every i[m]i\in[m] and K{0,1}λK\leftarrow\{0,1\}^{\lambda}. \mathpzc{B} simulates oracles for 𝒜\mathpzc{A} as follows.

    O𝖤𝗇𝖼(xk)O_{\mathtt{\mathsf{Enc}}}(x^{k}):

    Given the kk-th query xkx^{k}, \mathpzc{B} returns 𝗌𝖻𝗌𝗄𝗅.𝖼𝗍k\mathsf{sbskl}.\mathsf{ct}^{k} generated as follows.

    • Generate (sik)i[m]𝖨𝗇𝗉𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,xk)(s^{k}_{i})_{i\in[m]}\leftarrow\mathsf{InpEncode}(\mathsf{params},x^{k}).

    • If knk\leq n, use (jik)i[m](j_{i}^{k})_{i\in[m]} generated at the beginning. Otherwise, Generate jik[N]j^{k}_{i}\leftarrow[N] for every i[m]i\in[m].

    • Generate 𝖼𝗍ik𝗂𝖤𝗇𝖼(𝗆𝗌𝗄i,jik,(sik,𝟎,0))\mathsf{ct}^{k}_{i}\leftarrow\mathsf{iEnc}(\mathsf{msk}_{i},j^{k}_{i},(s^{k}_{i},\boldsymbol{0},0)) for every i[m]i\in[m].

    • Set 𝗌𝖻𝗌𝗄𝗅.𝖼𝗍k(𝖼𝗍ik)i[m]\mathsf{sbskl}.\mathsf{ct}^{k}\coloneqq(\mathsf{ct}^{k}_{i})_{i\in[m]}.

    O𝒦𝒢(f)O_{\mathtt{\mathpzc{KG}}}(f):

    Given ff, \mathpzc{B} returns 𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀\mathsf{sbskl}.\mathpzc{fsk} computed as follows.

    • Queries ff to its function encode oracle and obtain (fi,yifi(si))i[m])(f_{i},y_{i}\coloneqq f_{i}(s^{*}_{i}))_{i\in[m]}) if f(x0)=f(x1)f(x_{0}^{*})=f(x_{1}^{*}). Otherwise, compute (fi)i[m]𝖥𝗎𝗇𝖼𝖤𝗇𝖼𝗈𝖽𝖾(𝗉𝖺𝗋𝖺𝗆𝗌,f)(f_{i})_{i\in[m]}\leftarrow\mathsf{FuncEncode}(\mathsf{params},f).

    • Generate 𝗌𝖼𝗍i𝖤(K,𝟎)\mathsf{sct}_{i}\leftarrow\mathsf{E}(K,\boldsymbol{0}) for every iS𝚒𝚗𝚜𝚎𝚌𝚞𝚛𝚎i\in S_{\mathtt{insecure}}. Generate also 𝗌𝖼𝗍i𝖤(K,fi(si))\mathsf{sct}_{i}\leftarrow\mathsf{E}(K,f_{i}(s_{i}^{*})) for every iS𝚜𝚎𝚌𝚞𝚛𝚎i\in S_{\mathtt{secure}} if f(x0)=f(x1)f(x_{0}^{*})=f(x_{1}^{*}), and otherwise generate 𝗌𝖼𝗍i𝖤(K,𝟎)\mathsf{sct}_{i}\leftarrow\mathsf{E}(K,\boldsymbol{0}) for every iS𝚜𝚎𝚌𝚞𝚛𝚎i\in S_{\mathtt{secure}}.

    • Generate (𝒻𝓈𝓀𝒾,𝗏𝗄𝒾)𝒾𝒦𝒢(𝗆𝗌𝗄𝒾,[𝒻𝒾,𝗌𝖼𝗍𝒾])(\mathpzc{fsk}_{i},\mathsf{vk}_{i})\leftarrow\mathpzc{iKG}(\mathsf{msk}_{i},F[f_{i},\mathsf{sct}_{i}]) for every i[m]i\in[m].

    • Set 𝗌𝖻𝗌𝗄𝗅.𝒻𝓈𝓀(𝒻𝓈𝓀𝒾)𝒾[𝓂]\mathsf{sbskl}.\mathpzc{fsk}\coloneqq(\mathpzc{fsk}_{i})_{i\in[m]}.

    Also, \mathpzc{B} adds (f,(𝗏𝗄i)i[m],)(f,(\mathsf{vk}_{i})_{i\in[m]},\bot) to L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}.

    O𝖵𝗋𝖿𝗒(f,𝖼𝖾𝗋𝗍(𝖼𝖾𝗋𝗍i)i[m])O_{\mathtt{\mathsf{Vrfy}}}(f,\mathsf{cert}\coloneqq(\mathsf{cert}_{i})_{i\in[m]}):

    Given (f,𝖼𝖾𝗋𝗍(𝖼𝖾𝗋𝗍i)i[m])(f,\mathsf{cert}\coloneqq(\mathsf{cert}_{i})_{i\in[m]}), it finds an entry (f,(𝗏𝗄i)i[m],)(f,(\mathsf{vk}_{i})_{i\in[m]},\bot) from L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. (If there is no such entry, it returns \bot.) If =𝖵𝗋𝖿𝗒(𝗏𝗄i,𝖼𝖾𝗋𝗍i)\top=\mathsf{Vrfy}(\mathsf{vk}_{i},\mathsf{cert}_{i}) for every i[m]i\in[m] and the number of queries to O𝖤𝗇𝖼O_{\mathtt{\mathsf{Enc}}} at this point is less than nn, \mathpzc{B} returns \top and updates the entry into (f,(𝗏𝗄i)i[m],)(f,(\mathsf{vk}_{i})_{i\in[m]},\top). Otherwise, \mathpzc{B} returns \bot.

  2. 2.

    When 𝒜\mathpzc{A} requests the challenge ciphertext, \mathpzc{B} checks if for any entry (f,(𝗏𝗄i)i[m]{i},M)(f,(\mathsf{vk}_{i})_{i\in[m]\setminus\{i^{\prime}\}},M) in L𝒦𝒢L_{\mathtt{\mathpzc{KG}}} such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), it holds that M=M=\top. If so, \mathpzc{B} generates 𝖼𝗍i𝗂𝖤𝗇𝖼(𝗆𝗌𝗄i,ji,(𝟎,K,1))\mathsf{ct}^{*}_{i}\leftarrow\mathsf{iEnc}(\mathsf{msk}_{i},j^{*}_{i},(\boldsymbol{0},K,1)) for every iS𝚜𝚎𝚌𝚞𝚛𝚎i\in S_{\mathtt{secure}} and 𝖼𝗍i𝗂𝖤𝗇𝖼(𝗆𝗌𝗄i,ji,(si,𝟎,0))\mathsf{ct}^{*}_{i}\leftarrow\mathsf{iEnc}(\mathsf{msk}_{i},j^{*}_{i},(s^{*}_{i},\boldsymbol{0},0)) for every iS𝚒𝚗𝚜𝚎𝚌𝚞𝚛𝚎i\in S_{\mathtt{insecure}}, and \mathpzc{B} sends 𝗌𝖻𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍i)i[m]\mathsf{sbskl}.\mathsf{ct}\coloneqq(\mathsf{ct}^{*}_{i})_{i\in[m]} to 𝒜\mathpzc{A}. Otherwise, \mathpzc{B} outputs 0 and terminates. Hereafter, \mathpzc{B} rejects 𝒜\mathpzc{A}’s query ff to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}} such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}).

  3. 3.

    When 𝒜\mathpzc{A} outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}, \mathpzc{B} outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}.

\mathpzc{B} simulates 𝖧𝗒𝖻3\mathsf{Hyb}_{3} (resp. 𝖧𝗒𝖻4\mathsf{Hyb}_{4}) if \mathpzc{B} runs in 𝖤𝗑𝗉𝖲𝖾𝗍𝖧𝖲𝖲,𝗌𝖾𝗅-𝗂𝗇𝖽(1λ,0)\mathsf{Exp}_{\mathsf{SetHSS},\mathpzc{B}}^{\mathsf{sel}\mbox{-}\mathsf{ind}}(1^{\lambda},0) (resp. 𝖤𝗑𝗉𝖲𝖾𝗍𝖧𝖲𝖲,𝗌𝖾𝗅-𝗂𝗇𝖽(1λ,1)\mathsf{Exp}_{\mathsf{SetHSS},\mathpzc{B}}^{\mathsf{sel}\mbox{-}\mathsf{ind}}(1^{\lambda},1)). This completes the proof.   

From the above discussions, 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} satisfies selective strong lessor security.   

Remark 5.4 (Difference from FE security amplification).

A savvy reader notices that although we use the technique used in the FE security amplification by Jain et al. [JKMS20], we do not use their probabilistic replacement theorem [JKMS20, Theorem 7.1 in eprint ver.] and the nested construction [JKMS20, Section 9 in eprint ver.] in the proofs of Theorem 5.1. We do not need them for our purpose due to the following reason.

Jain et al. need the nested construction to achieve a secure FE scheme whose adversary’s advantage is less than 1/61/6 from one whose adversary’s advantage is any constant ϵ(0,1)\epsilon\in(0,1). We do not need the nested construction since we can start with a secure construction whose adversary’s advantage is less than 1/61/6 by setting a large index space in the index-based construction.

Jain et al. need the probabilistic replacement theorem due to the following reason. We do not know which FE instance is secure at the beginning of the FE security game in the security amplification context, while the adversary in set homomorphic secret sharing must declare the index of a secure instance at the beginning. In our case, whether each index-based FE instance is secure or not depends on whether randomly sampled indices collide or not. In addition, we can sample all indices used in the security game at the beginning of the game, and a secure FE instance is fixed at the beginning. Thus, we can apply the security of set homomorphic secret sharing without the probabilistic replacement theorem.

6 SKFE with Secure Key Leasing

We construct an SKFE-SKL scheme 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫=(𝖲𝖪𝖫.𝖲𝖾𝗍𝗎𝗉,𝖲𝖪𝖫.𝒦𝒢,𝖲𝖪𝖫.𝖤𝗇𝖼,𝖲𝖪𝖫.𝒟𝒸,𝖲𝖪𝖫.𝒞𝓇𝓉,𝖲𝖪𝖫.𝖵𝗋𝖿𝗒)\mathsf{SKFE\textrm{-}SKL}=(\mathsf{SKL}.\mathsf{Setup},\mathsf{SKL}.\mathpzc{KG},\mathsf{SKL}.\mathsf{Enc},\allowbreak\mathsf{SKL}.\mathpzc{Dec},\allowbreak\mathsf{SKL}.\mathpzc{Cert},\allowbreak\mathsf{SKL}.\mathsf{Vrfy}) from an SKFE-sbSKL scheme 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫=(𝗌𝖻𝖲𝖪𝖫.𝖲𝖾𝗍𝗎𝗉,𝗌𝖻𝖲𝖪𝖫.𝒦𝒢,𝗌𝖻𝖲𝖪𝖫.𝖤𝗇𝖼,𝗌𝖻𝖲𝖪𝖫.𝒟𝒸,𝗌𝖻𝖲𝖪𝖫.𝒞𝓇𝓉,𝗌𝖻𝖲𝖪𝖫.𝖵𝗋𝖿𝗒)\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}\allowbreak=(\mathsf{sbSKL}.\mathsf{Setup},\allowbreak\mathsf{sbSKL}.\mathpzc{KG},\mathsf{sbSKL}.\mathsf{Enc},\allowbreak\mathsf{sbSKL}.\mathpzc{Dec},\allowbreak\mathsf{sbSKL}.\mathpzc{Cert},\mathsf{sbSKL}.\mathsf{Vrfy}). The description of 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{SKL} is as follows.

𝖲𝖪𝖫.𝖲𝖾𝗍𝗎𝗉(1λ,1q)\mathsf{SKL}.\mathsf{Setup}(1^{\lambda},1^{q}):

  • Generate 𝗆𝗌𝗄k𝗌𝖻𝖲𝖪𝖫.𝖲𝖾𝗍𝗎𝗉(1λ,1q,2k)\mathsf{msk}_{k}\leftarrow\mathsf{sbSKL}.\mathsf{Setup}(1^{\lambda},1^{q},2^{k}) for every k[λ]k\in[\lambda].

  • Output 𝗌𝗄𝗅.𝗆𝗌𝗄(𝗆𝗌𝗄k)k[λ]\mathsf{skl}.\mathsf{msk}\coloneqq(\mathsf{msk}_{k})_{k\in[\lambda]}.

𝖲𝖪𝖫.𝒦𝒢(𝗌𝗄𝗅.𝗆𝗌𝗄,𝒻,1𝓃)\mathsf{SKL}.\mathpzc{KG}(\mathsf{skl}.\mathsf{msk},f,1^{n}):

  • Parse (𝗆𝗌𝗄k)k[λ]𝗌𝗄𝗅.𝗆𝗌𝗄(\mathsf{msk}_{k})_{k\in[\lambda]}\leftarrow\mathsf{skl}.\mathsf{msk}.

  • Compute kk^{\prime} such that 2k1n2k2^{k^{\prime}-1}\leq n\leq 2^{k^{\prime}}.

  • Generate (𝒻𝓈𝓀𝓀,𝗏𝗄𝓀)𝗌𝖻𝖲𝖪𝖫.𝒦𝒢(𝗆𝗌𝗄𝓀,𝒻)(\mathpzc{fsk}_{k^{\prime}},\mathsf{vk}_{k^{\prime}})\leftarrow\mathsf{sbSKL}.\mathpzc{KG}(\mathsf{msk}_{k^{\prime}},f).

  • Output 𝗌𝗄𝗅.𝒻𝓈𝓀(𝓀,𝒻𝓈𝓀𝓀)\mathsf{skl}.\mathpzc{fsk}\coloneqq(k^{\prime},\mathpzc{fsk}_{k^{\prime}}) and 𝗏𝗄k\mathsf{vk}_{k^{\prime}}.

𝖲𝖪𝖫.𝖤𝗇𝖼(𝗌𝗄𝗅.𝗆𝗌𝗄,x)\mathsf{SKL}.\mathsf{Enc}(\mathsf{skl}.\mathsf{msk},x):

  • Parse (𝗆𝗌𝗄k)k[λ]𝗌𝗄𝗅.𝗆𝗌𝗄(\mathsf{msk}_{k})_{k\in[\lambda]}\leftarrow\mathsf{skl}.\mathsf{msk}.

  • Generate 𝖼𝗍k𝗌𝖻𝖲𝖪𝖫.𝖤𝗇𝖼(𝗆𝗌𝗄k,x)\mathsf{ct}_{k}\leftarrow\mathsf{sbSKL}.\mathsf{Enc}(\mathsf{msk}_{k},x) for every k[λ]k\in[\lambda].

  • Output 𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍k)k[λ]\mathsf{skl}.\mathsf{ct}\coloneqq(\mathsf{ct}_{k})_{k\in[\lambda]}.

𝖲𝖪𝖫.𝒟𝒸(𝗌𝗄𝗅.𝓈𝓀𝒻,𝗌𝗄𝗅.𝖼𝗍)\mathsf{SKL}.\mathpzc{Dec}(\mathsf{skl}.\mathpzc{sk}_{f},\mathsf{skl}.\mathsf{ct}):

  • Parse (k,𝒻𝓈𝓀𝓀)𝗌𝗄𝗅.𝒻𝓈𝓀(k^{\prime},\mathpzc{fsk}_{k^{\prime}})\leftarrow\mathsf{skl}.\mathpzc{fsk} and (𝖼𝗍k)k[λ]𝗌𝗄𝗅.𝖼𝗍(\mathsf{ct}_{k})_{k\in[\lambda]}\leftarrow\mathsf{skl}.\mathsf{ct}.

  • Output y𝗌𝖻𝖲𝖪𝖫.𝒟𝒸(𝒻𝓈𝓀𝓀,𝖼𝗍𝓀)y\leftarrow\mathsf{sbSKL}.\mathpzc{Dec}(\mathpzc{fsk}_{k^{\prime}},\mathsf{ct}_{k^{\prime}}).

𝖲𝖪𝖫.𝒞𝓇𝓉(𝗌𝗄𝗅.𝓈𝓀𝒻)\mathsf{SKL}.\mathpzc{Cert}(\mathsf{skl}.\mathpzc{sk}_{f}):

  • Parse (k,𝒻𝓈𝓀𝓀)𝗌𝗄𝗅.𝓈𝓀𝒻(k^{\prime},\mathpzc{fsk}_{k^{\prime}})\leftarrow\mathsf{skl}.\mathpzc{sk}_{f}.

  • Output 𝖼𝖾𝗋𝗍𝗌𝖻𝖲𝖪𝖫.𝒞𝓇𝓉(𝒻𝓈𝓀𝓀)\mathsf{cert}\leftarrow\mathsf{sbSKL}.\mathpzc{Cert}(\mathpzc{fsk}_{k^{\prime}}).

𝖲𝖪𝖫.𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\mathsf{SKL}.\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert}):

  • Output /𝗌𝖻𝖲𝖪𝖫.𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\top/\bot\leftarrow\mathsf{sbSKL}.\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert}).

The correctness of 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{SKL} follows from that of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}. Also, we can confirm that all algorithms of 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{SKL} run in polynomial time since 𝗌𝖻𝖲𝖪𝖫.𝖲𝖾𝗍𝗎𝗉\mathsf{sbSKL}.\mathsf{Setup} and 𝗌𝖻𝖲𝖪𝖫.𝖤𝗇𝖼\mathsf{sbSKL}.\mathsf{Enc} of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} run in polynomial time even for the availability bound 2λ2^{\lambda} due to its weak optimal efficiency. For security, we have the following theorem.

Theorem 6.1.

If 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} satisfies selective strong lessor security, then 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{SKL} satisfies selective lessor security.

Proof of Theorem 6.1.

We define a sequence of hybrid games to prove the theorem.

𝖧𝗒𝖻0\mathsf{Hyb}_{0}:

This is the same as 𝖤𝗑𝗉𝒜,𝖲𝖪𝖥𝖤-𝖲𝖪𝖫𝗌𝖾𝗅-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,0)\mathsf{Exp}_{\mathpzc{A},\mathsf{SKFE\textrm{-}SKL}}^{\mathsf{sel}\mbox{-}\mathsf{lessor}}(1^{\lambda},0).

  1. 1.

    At the beginning, 𝒜\mathpzc{A} sends (1q,x0,x1)(1^{q},x_{0}^{*},x_{1}^{*}) to the challenger. The challenger runs 𝗆𝗌𝗄k𝗌𝖻𝖲𝖪𝖫.𝖲𝖾𝗍𝗎𝗉(1λ,1q,2k)\mathsf{msk}_{k}\leftarrow\mathsf{sbSKL}.\mathsf{Setup}(1^{\lambda},1^{q},2^{k}) for every k[λ]k\in[\lambda]. Throughout the experiment, 𝒜\mathpzc{A} can access the following oracles.

    O𝖤𝗇𝖼(x)O_{\mathtt{\mathsf{Enc}}}(x):

    Given xx, it generates 𝖼𝗍k𝗌𝖻𝖲𝖪𝖫.𝖤𝗇𝖼(𝗆𝗌𝗄k,x)\mathsf{ct}_{k}\leftarrow\mathsf{sbSKL}.\mathsf{Enc}(\mathsf{msk}_{k},x) for every k[λ]k\in[\lambda] and returns 𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍k)k[λ]\mathsf{skl}.\mathsf{ct}\coloneqq(\mathsf{ct}_{k})_{k\in[\lambda]}.

    O𝒦𝒢(f,1n)O_{\mathtt{\mathpzc{KG}}}(f,1^{n}):

    Given (f,1n)(f,1^{n}), it computes kk such that 2k1n2k2^{k-1}\leq n\leq 2^{k}, generates (𝒻𝓈𝓀𝓀,𝗏𝗄𝓀)𝗌𝖻𝖲𝖪𝖫.𝒦𝒢(𝗆𝗌𝗄𝓀,𝒻)(\mathpzc{fsk}_{k},\mathsf{vk}_{k})\leftarrow\mathsf{sbSKL}.\mathpzc{KG}(\mathsf{msk}_{k},f), and sets 𝗌𝗄𝗅.𝒻𝓈𝓀(𝓀,𝒻𝓈𝓀𝓀)\mathsf{skl}.\mathpzc{fsk}\coloneqq(k,\mathpzc{fsk}_{k}). It returns 𝗌𝗄𝗅.𝒻𝓈𝓀\mathsf{skl}.\mathpzc{fsk} to 𝒜\mathpzc{A} and adds (f,1n,𝗏𝗄k,)(f,1^{n},\mathsf{vk}_{k},\bot) to L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. 𝒜\mathpzc{A} can access this oracle at most qq times.

    O𝖵𝗋𝖿𝗒(f,𝖼𝖾𝗋𝗍)O_{\mathtt{\mathsf{Vrfy}}}(f,\mathsf{cert}):

    Given (f,𝖼𝖾𝗋𝗍)(f,\mathsf{cert}), it finds an entry (f,1n,𝗏𝗄,M)(f,1^{n},\mathsf{vk},M) from L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. (If there is no such entry, it returns \bot.) If =𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\top=\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert}) and the number of queries to O𝖤𝗇𝖼O_{\mathtt{\mathsf{Enc}}} at this point is less than nn, it returns \top and updates the entry into (f,1n,𝗏𝗄,)(f,1^{n},\mathsf{vk},\top). Otherwise, it returns \bot.

  2. 2.

    When 𝒜\mathpzc{A} requests the challenge ciphertext, the challenger checks if for any entry (f,1n,𝗏𝗄,M)(f,1^{n},\mathsf{vk},M) in L𝒦𝒢L_{\mathtt{\mathpzc{KG}}} such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), it holds that M=M=\top. If so, the challenger generates 𝖼𝗍k𝗌𝖻𝖲𝖪𝖫.𝖤𝗇𝖼(𝗆𝗌𝗄k,x0)\mathsf{ct}^{*}_{k}\leftarrow\mathsf{sbSKL}.\mathsf{Enc}(\mathsf{msk}_{k},x_{0}^{*}) for every k[λ]k\in[\lambda] and sends 𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍k)k[λ]\mathsf{skl}.\mathsf{ct}^{*}\coloneqq(\mathsf{ct}^{*}_{k})_{k\in[\lambda]} to 𝒜\mathpzc{A}. Otherwise, the challenger outputs 0. Hereafter, 𝒜\mathpzc{A} is not allowed to sends a function ff such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}) to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}.

  3. 3.

    𝒜\mathpzc{A} outputs a guess 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} for 𝖼𝗈𝗂𝗇\mathsf{coin}. The challenger outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} as the final output of the experiment.

We define 𝖧𝗒𝖻k\mathsf{Hyb}_{k^{\prime}} for every k[λ]k^{\prime}\in[\lambda].

𝖧𝗒𝖻k\mathsf{Hyb}_{k^{\prime}}:

This hybrid is the same as 𝖧𝗒𝖻k1\mathsf{Hyb}_{k^{\prime}-1} except that 𝖼𝗍k\mathsf{ct}_{k^{\prime}}^{*} is generated as 𝖼𝗍k𝖤𝗇𝖼(𝗆𝗌𝗄k,x1)\mathsf{ct}_{k^{\prime}}^{*}\leftarrow\mathsf{Enc}(\mathsf{msk}_{k^{\prime}},x_{1}^{*}).

𝖧𝗒𝖻λ\mathsf{Hyb}_{\lambda} is exactly the same experiment as 𝖤𝗑𝗉𝒜,𝖲𝖪𝖥𝖤-𝖲𝖪𝖫𝗌𝖾𝗅-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,1)\mathsf{Exp}_{\mathpzc{A},\mathsf{SKFE\textrm{-}SKL}}^{\mathsf{sel}\mbox{-}\mathsf{lessor}}(1^{\lambda},1).

For every k[λ]k^{\prime}\in[\lambda], we let 𝚂𝚄𝙲k{\tt SUC}_{k^{\prime}} be the event that the output of the experiment 𝖧𝗒𝖻k\mathsf{Hyb}_{k^{\prime}} is 11. Then, we have

𝖠𝖽𝗏𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜𝗌𝖾𝗅-𝗅𝖾𝗌𝗌𝗈𝗋(λ)=|Pr[𝖧𝗒𝖻0=1]Pr[𝖧𝗒𝖻λ=1]|k=1λ|Pr[𝚂𝚄𝙲k1]Pr[𝚂𝚄𝙲k]|.\displaystyle\mathsf{Adv}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A}}^{\mathsf{sel}\mbox{-}\mathsf{lessor}}(\lambda)=\absolutevalue{\Pr[\mathsf{Hyb}_{0}=1]-\Pr[\mathsf{Hyb}_{\lambda}=1]}\leq\sum_{k^{\prime}=1}^{\lambda}\absolutevalue{\Pr[{\tt SUC}_{k^{\prime}-1}]-\Pr[{\tt SUC}_{k^{\prime}}]}. (32)
Proposition 6.2.

It holds that |Pr[𝖧𝗒𝖻k1=1]Pr[𝖧𝗒𝖻k=1]|=𝗇𝖾𝗀𝗅(λ)\absolutevalue{\Pr[\mathsf{Hyb}_{k^{\prime}-1}=1]-\Pr[\mathsf{Hyb}_{k^{\prime}}=1]}={\mathsf{negl}}(\lambda) for every k[λ]k^{\prime}\in[\lambda] if 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} is selectively lessor secure.

Proof of Proposition 6.2.

We construct the following adversary \mathpzc{B} that attacks selective lessor security of 𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫\mathsf{SKFE}\textrm{-}\mathsf{sbSKL} with respect to 𝗆𝗌𝗄k\mathsf{msk}_{k^{\prime}}.

  1. 1.

    \mathpzc{B} executes 𝒜\mathpzc{A} and obtains (1q,x0,x1)(1^{q},x_{0}^{*},x_{1}^{*}) from 𝒜\mathpzc{A}. \mathpzc{B} sends (1q,x0,x1,2k)(1^{q},x_{0}^{*},x_{1}^{*},2^{k^{\prime}}) to the challenger. \mathpzc{B} generates 𝗆𝗌𝗄k𝗌𝖻𝖲𝖪𝖫.𝖲𝖾𝗍𝗎𝗉(1λ,1q,2k)\mathsf{msk}_{k}\leftarrow\mathsf{sbSKL}.\mathsf{Setup}(1^{\lambda},1^{q},2^{k}) for every k[λ]{k}k\in[\lambda]\setminus\{k^{\prime}\}. \mathpzc{B} simulates queries made by 𝒜\mathpzc{A} as follows.

    O𝖤𝗇𝖼(x)O_{\mathtt{\mathsf{Enc}}}(x):

    Given xx, \mathpzc{B} generates 𝖼𝗍k𝗌𝖻𝖲𝖪𝖫.𝖤𝗇𝖼(𝗆𝗌𝗄k,x)\mathsf{ct}_{k}\leftarrow\mathsf{sbSKL}.\mathsf{Enc}(\mathsf{msk}_{k},x) for every k[λ]{k}k\in[\lambda]\setminus\{k^{\prime}\}. \mathpzc{B} also queries xx to its encryption oracle and obtains 𝖼𝗍k\mathsf{ct}_{k^{\prime}}. \mathpzc{B} returns 𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍k)k[λ]\mathsf{skl}.\mathsf{ct}\coloneqq(\mathsf{ct}_{k})_{k\in[\lambda]}.

    O𝒦𝒢(f,1n)O_{\mathtt{\mathpzc{KG}}}(f,1^{n}):

    Given (f,1n)(f,1^{n}), \mathpzc{B} computes kk such that 2k1n2k2^{k-1}\leq n\leq 2^{k}. If kkk\neq k^{\prime}, \mathpzc{B} generates (𝒻𝓈𝓀𝓀,𝗏𝗄𝓀)𝗌𝖻𝖲𝖪𝖫.𝒦𝒢(𝗆𝗌𝗄𝓀,𝒻)(\mathpzc{fsk}_{k},\mathsf{vk}_{k})\leftarrow\mathsf{sbSKL}.\mathpzc{KG}(\mathsf{msk}_{k},f), and otherwise \mathpzc{B} queries ff to its key generation oracle and obtains 𝒻𝓈𝓀𝓀\mathpzc{fsk}_{k} and sets 𝗏𝗄k\mathsf{vk}_{k}\coloneqq\bot. \mathpzc{B} returns 𝗌𝗄𝗅.𝒻𝓈𝓀𝒻𝓈𝓀𝓀\mathsf{skl}.\mathpzc{fsk}\coloneqq\mathpzc{fsk}_{k}. \mathpzc{B} adds (f,1n,𝗏𝗄k,)(f,1^{n},\mathsf{vk}_{k},\bot) to L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}.

    O𝖵𝗋𝖿𝗒(f,𝖼𝖾𝗋𝗍)O_{\mathtt{\mathsf{Vrfy}}}(f,\mathsf{cert}):

    Given (f,𝖼𝖾𝗋𝗍)(f,\mathsf{cert}), it finds an entry (f,1n,𝗏𝗄,M)(f,1^{n},\mathsf{vk},M) from L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. (If there is no such entry, it returns \bot.) If 𝗏𝗄=\mathsf{vk}=\bot, \mathpzc{B} sends 𝖼𝖾𝗋𝗍\mathsf{cert} to its verification oracle and obtains MM, and otherwise it computes M=𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)M=\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert}). If M=M=\top and the number of queries to O𝖤𝗇𝖼O_{\mathtt{\mathsf{Enc}}} at this point is less than nn, it returns \top and updates the entry into (f,1n,𝗏𝗄,)(f,1^{n},\mathsf{vk},\top). Otherwise, it returns \bot.

  2. 2.

    When 𝒜\mathpzc{A} requests the challenge ciphertext, the challenger checks if for any entry (f,1n,𝗏𝗄,M)(f,1^{n},\mathsf{vk},M) in L𝒦𝒢L_{\mathtt{\mathpzc{KG}}} such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}), it holds that M=M=\top. If so, \mathpzc{B} requests the challenge ciphertext to its challenger and obtains 𝖼𝗍k\mathsf{ct}_{k^{\prime}}^{*}, generates 𝖼𝗍k𝗌𝖻𝖲𝖪𝖫.𝖤𝗇𝖼(𝗆𝗌𝗄k,x1)\mathsf{ct}^{*}_{k}\leftarrow\mathsf{sbSKL}.\mathsf{Enc}(\mathsf{msk}_{k},x_{1}^{*}) for every 1k<k1\leq k<k^{\prime} and 𝖼𝗍k𝗌𝖻𝖲𝖪𝖫.𝖤𝗇𝖼(𝗆𝗌𝗄k,x0)\mathsf{ct}^{*}_{k}\leftarrow\mathsf{sbSKL}.\mathsf{Enc}(\mathsf{msk}_{k},x_{0}^{*}) for every k<kλk^{\prime}<k\leq\lambda, and sends 𝗌𝗄𝗅.𝖼𝗍(𝖼𝗍k)k[λ]\mathsf{skl}.\mathsf{ct}^{*}\coloneqq(\mathsf{ct}^{*}_{k})_{k\in[\lambda]} to 𝒜\mathpzc{A}. Otherwise, the challenger outputs 0. Hereafter, 𝒜\mathpzc{A} is not allowed to sends a function ff such that f(x0)f(x1)f(x_{0}^{*})\neq f(x_{1}^{*}) to O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}.

  3. 3.

    When 𝒜\mathpzc{A} outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}, \mathpzc{B} outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} and terminates.

\mathpzc{B} simulates 𝖧𝗒𝖻k1\mathsf{Hyb}_{k^{\prime}-1} (resp. 𝖧𝗒𝖻k\mathsf{Hyb}_{k^{\prime}}) for 𝒜\mathpzc{A} if \mathpzc{B} runs in 𝖤𝗑𝗉,𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫𝗌𝖾𝗅-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,0)\mathsf{Exp}_{\mathpzc{B},\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}}^{\mathsf{sel}\mbox{-}\mathsf{lessor}}(1^{\lambda},0) (resp. 𝖤𝗑𝗉,𝖲𝖪𝖥𝖤-𝗌𝖻𝖲𝖪𝖫𝗌𝖾𝗅-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,1)\mathsf{Exp}_{\mathpzc{B},\mathsf{SKFE}\textrm{-}\mathsf{sbSKL}}^{\mathsf{sel}\mbox{-}\mathsf{lessor}}(1^{\lambda},1).). This completes the proof.   

From the above discussions, 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL} satisfies selective lessor security.   

By Theorems 6.1, 5.1, 4.1, 2.2, 2.8, 2.12 and 2.16, we obtain the following theorem.

Theorem 6.3.

If there exist OWFs, there exists selectively lessor secure SKFE-SKL for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} (in the sense of Definition 3.2).

Although we describe our results on SKFE-SKL in the bounded collusion-resistant setting, our transformation from standard SKFE to SKFE-SKL also works in the fully collusion-resistant setting. The fully collusion-resistance guarantees that the SKFE scheme is secure even if an adversary accesses the key generation oracle a-priori unbounded times. Namely, if we start with fully collusion-resistant SKFE, we can obtain fully collusion-resistant SKFE-SKL by our transformations.

7 Single-Decryptor Functional Encryption

This section introduces single-decryptor FE (SDFE), whose functional decryption keys are copy-protected.

7.1 Preliminaries for SDFE

Quantum information.

We review some basics of qunatum information in this subsection.

Let \mathcal{H} be a finite-dimensional complex Hilbert space. A (pure) quantum state is a vector |ψ\ket{\psi}\in\mathcal{H}. Let 𝒮()\mathcal{S}(\mathcal{H}) be the space of Hermitian operators on \mathcal{H}. A density matrix is a Hermitian operator 𝒳𝒮()\mathpzc{X}\in\mathcal{S}(\mathcal{H}) with Tr(𝒳)=1\Tr(\mathpzc{X})=1, which is a probabilistic mixture of pure states. A quantum state over =2\mathcal{H}=\mathbb{C}^{2} is called qubit, which can be represented by the linear combination of the standard basis {|0,|1}\{\ket{0},\ket{1}\}. More generally, a quantum system over (2)n(\mathbb{C}^{2})^{\otimes n} is called an nn-qubit quantum system for n{0}n\in\mathbb{N}\setminus\{0\}.

A Hilbert space is divided into registers =𝖱1𝖱2𝖱n\mathcal{H}=\mathcal{H}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}}\otimes\mathcal{H}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}}\otimes\cdots\otimes\mathcal{H}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{n}}. We sometimes write 𝒳𝖱𝒾\mathpzc{X}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}} to emphasize that the operator 𝒳\mathpzc{X} acts on register 𝖱i\mathcal{H}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}}.131313The superscript parts are gray colored. When we apply 𝒳𝖱1\mathpzc{X}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}} to registers 𝖱1\mathcal{H}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}} and 𝖱2\mathcal{H}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}}, 𝒳𝖱1\mathpzc{X}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}} is identified with 𝒳𝖱1I𝖱2\mathpzc{X}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}}\otimes\boldsymbol{I}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}}.

A unitary operation is represented by a complex matrix 𝑼\boldsymbol{U} such that 𝑼𝑼=𝑰\boldsymbol{U}\boldsymbol{U}^{\dagger}=\boldsymbol{I}. The operation 𝑼\boldsymbol{U} transforms |ψ\ket{\psi} and 𝒳\mathpzc{X} into 𝑼|ψ\boldsymbol{U}\ket{\psi} and 𝑼𝒳U\boldsymbol{U}\mathpzc{X}\boldsymbol{U}^{\dagger}, respectively. A projector 𝑷\boldsymbol{P} is a Hermitian operator (𝑷=𝑷\boldsymbol{P}^{\dagger}=\boldsymbol{P}) such that 𝑷2=𝑷\boldsymbol{P}^{2}=\boldsymbol{P}.

For a quantum state 𝒳\mathpzc{X} over two registers 𝖱1\mathcal{H}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}} and 𝖱2\mathcal{H}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}}, we denote the state in 𝖱1\mathcal{H}^{{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}} as 𝒳[𝖱1]\mathpzc{X}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}], where 𝒳[𝖱1]=Tr2[𝒳]\mathpzc{X}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}]=\Tr_{2}[\mathpzc{X}] is a partial trace of 𝒳\mathpzc{X} (trace out 𝖱2{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}).

Definition 7.1 (Quantum Program with Classical Inputs and Outputs [ALL+21]).

A quantum program with classical inputs is a pair of quantum state 𝓆\mathpzc{q} and unitaries {𝐔x}x[N]\{\boldsymbol{U}_{x}\}_{x\in[N]} where [N][N] is the domain, such that the state of the program evaluated on input xx is equal to 𝐔x𝓆𝓤𝓍\boldsymbol{U}_{x}\mathpzc{q}\boldsymbol{U}_{x}^{\dagger}. We measure the first register of 𝐔x𝓆𝓤𝓍\boldsymbol{U}_{x}\mathpzc{q}\boldsymbol{U}_{x}^{\dagger} to obtain an output. We say that {𝐔x}x[N]\{\boldsymbol{U}_{x}\}_{x\in[N]} has a compact classical description 𝐔\boldsymbol{U} when applying 𝐔x\boldsymbol{U}_{x} can be efficiently computed given 𝐔\boldsymbol{U} and xx.

Definition 7.2 (Positive Operator-Valued Measure).

Let \mathcal{I} be a finite index set. A positive operator valued measure (POVM) \mathcal{M} is a collection {𝐌i}i\{\boldsymbol{M}_{i}\}_{i\in\mathcal{I}} of Hermitian positive semi-define matrices 𝐌i\boldsymbol{M}_{i} such that i𝐌i=𝐈\sum_{i\in\mathcal{I}}\boldsymbol{M}_{i}=\boldsymbol{I}. When we apply POVM \mathcal{M} to a quantum state 𝒳\mathpzc{X}, the measurement outcome is ii with probability pi=Tr(𝒳𝓜𝒾)p_{i}=\Tr(\mathpzc{X}\boldsymbol{M}_{i}). We denote by (|ψ)\mathcal{M}(\ket{\psi}) the distribution obtained by applying \mathcal{M} to |ψ\ket{\psi}.

Definition 7.3 (Quantum Measurement).

A quantum measurement \mathcal{E} is a collection {𝐄i}i\{\boldsymbol{E}_{i}\}_{i\in\mathcal{I}} of matrices 𝐄i\boldsymbol{E}_{i} such that i𝐄i𝐄i=𝐈\sum_{i\in\mathcal{I}}\boldsymbol{E}_{i}^{\dagger}\boldsymbol{E}_{i}=\boldsymbol{I}. When we apply \mathcal{E} to a quantum state 𝒳\mathpzc{X}, the measurement outcome is ii with probability pi=Tr(𝒳𝓔𝒾𝓔𝒾)p_{i}=\Tr(\mathpzc{X}\boldsymbol{E}_{i}^{\dagger}\boldsymbol{E}_{i}). Conditioned on the outcome being ii, the post-measurement state is 𝐄i𝒳𝓔𝒾/𝓅𝒾\boldsymbol{E}_{i}\mathpzc{X}\boldsymbol{E}_{i}^{\dagger}/p_{i}.

We can construct a POVM \mathcal{M} from any quantum measurement \mathcal{E} by setting 𝑴i𝑬i𝑬i\boldsymbol{M}_{i}\coloneqq\boldsymbol{E}_{i}^{\dagger}\boldsymbol{E}_{i}. We say that \mathcal{E} is an implementation of \mathcal{M}. The implementation of a POVM may not be unique.

Definition 7.4 (Projective Measurement/POVM).

A quantum measurement ={𝐄i}i\mathcal{E}=\{\boldsymbol{E}_{i}\}_{i\in\mathcal{I}} is projective if for all ii\in\mathcal{I}, 𝐄i\boldsymbol{E}_{i} is a projector. This implies that 𝐄i𝐄j=𝟎\boldsymbol{E}_{i}\boldsymbol{E}_{j}=\boldsymbol{0} for distinct i,ji,j\in\mathcal{I}. In particular, two-outcome projective measurement is called a binary projective measurement, and is written as =(𝐏,𝐈𝐏)\mathcal{E}=(\boldsymbol{P},\boldsymbol{I}-\boldsymbol{P}), where 𝐏\boldsymbol{P} is associated with the outcome 11, and 𝐈𝐏\boldsymbol{I}-\boldsymbol{P} with the outcome 0. Similarly, a POVM \mathcal{M} is projective if for all ii\in\mathcal{I}, 𝐌i\boldsymbol{M}_{i} is a projector. This also implies that 𝐌i𝐌j=𝟎\boldsymbol{M}_{i}\boldsymbol{M}_{j}=\boldsymbol{0} for distinct i,ji,j\in\mathcal{I}.

Definition 7.5 (Projective Implementation).

Let:

  • 𝒟\mathcal{D} be a finite set of distributions over an index set \mathcal{I}.

  • 𝒫={𝑷i}i\mathcal{P}=\{\boldsymbol{P}_{i}\}_{i\in\mathcal{I}} be a POVM

  • ={𝑬D}D𝒟\mathcal{E}=\{\boldsymbol{E}_{D}\}_{D\in\mathcal{D}} be a projective measurement with index set 𝒟\mathcal{D}.

We consider the following measurement procedure.

  1. 1.

    Measure under the projective measurement \mathcal{E} and obtain a distribution DD.

  2. 2.

    Output a random sample from the distribution DD.

We say \mathcal{E} is the projective implementation of 𝒫\mathcal{P}, denoted by 𝖯𝗋𝗈𝗃𝖨𝗆𝗉(𝒫)\mathsf{ProjImp}(\mathcal{P}), if the measurement process above is equivalent to 𝒫\mathcal{P}.

Theorem 7.6 ([Zha20, Lemma 1]).

Any binary outcome POVM 𝒫=(𝐏,𝐈𝐏)\mathcal{P}=(\boldsymbol{P},\boldsymbol{I}-\boldsymbol{P}) has a unique projective implementation 𝖯𝗋𝗈𝗃𝖨𝗆𝗉(𝒫)\mathsf{ProjImp}(\mathcal{P}).

Threshold implementation.

We review the notion of threshold implementation and related notions since we need them for single decryptor (functional) encryption. This part is mostly taken from the paper by Coladangelo et al. [CLLZ21].

Definition 7.7 (Threshold Implementation [Zha20, ALL+21]).

Let

  • 𝒫=(𝑷,𝑰𝑷)\mathcal{P}=(\boldsymbol{P},\boldsymbol{I}-\boldsymbol{P}) be a binary POVM

  • 𝖯𝗋𝗈𝗃𝖨𝗆𝗉(𝒫)\mathsf{ProjImp}(\mathcal{P}) and \mathcal{E} be a projective implementation of 𝒫\mathcal{P} and the projective measurement in the first step of 𝖯𝗋𝗈𝗃𝖨𝗆𝗉(𝒫)\mathsf{ProjImp}(\mathcal{P}), respectively

  • γ>0\gamma>0.

A threshold implementation of 𝒫\mathcal{P}, denoted by 𝒯γ(𝒫)\mathpzc{TI}_{\gamma}(\mathcal{P}), is the following measurement procedure.

  • Apply \mathcal{E} to a quantum state and obtain (p,1p)(p,1-p) as an outcome.

  • Output 11 if pγp\geq\gamma, and 0 otherwise.

For any quantum state 𝓆\mathpzc{q}, we denote by Tr[𝒯γ(𝒫)𝓆]\Tr[\mathpzc{TI}_{\gamma}(\mathcal{P})\mathpzc{q}] the probability that the threshold implementation applied to 𝓆\mathpzc{q} outputs 11 as Coladangelo et al. did [CLLZ21]. This means that whenever 𝒯γ(𝒫)\mathpzc{TI}_{\gamma}(\mathcal{P}) appears inside a trace Tr\Tr, we treat 𝒯γ(𝒫)\mathpzc{TI}_{\gamma}(\mathcal{P}) as a projection onto the 11 outcome.

Lemma 7.8 ([ALL+21]).

Any binary POVM 𝒫=(𝐏,𝐈𝐏)\mathcal{P}=(\boldsymbol{P},\boldsymbol{I}-\boldsymbol{P}) has a threshold implementation 𝒯γ(𝒫)\mathpzc{TI}_{\gamma}(\mathcal{P}) for any γ\gamma.

Definition 7.9 (Mixture of Projetive Measurement [Zha20]).

Let D:D:\mathcal{R}\rightarrow\mathcal{I} where \mathcal{R} and \mathcal{I} are some sets. Let {(𝐏i,𝐐i)}\{(\boldsymbol{P}_{i},\boldsymbol{Q}_{i})\}_{\in\mathcal{I}} be a collection of binary projective measurement. The mixture of projective measurements associated to \mathcal{R}, \mathcal{I}, DD, and {(𝐏i,𝐐i)}\{(\boldsymbol{P}_{i},\boldsymbol{Q}_{i})\}_{\in\mathcal{I}} is the binary POVM 𝒫D=(𝐏D,𝐐D)\mathcal{P}_{D}=(\boldsymbol{P}_{D},\boldsymbol{Q}_{D}) defined as follows

𝑷D=iPr[iD(R)]𝑷i\displaystyle\boldsymbol{P}_{D}=\sum_{i\in\mathcal{I}}\Pr[i\leftarrow D(R)]\boldsymbol{P}_{i} 𝑸D=iPr[iD(R)]𝑸i,\displaystyle\boldsymbol{Q}_{D}=\sum_{i\in\mathcal{I}}\Pr[i\leftarrow D(R)]\boldsymbol{Q}_{i}, (33)

where RR is uniformly distributed in \mathcal{R}.

Theorem 7.10 ([Zha20, ALL+21]).

Let

  • γ>0\gamma>0

  • 𝒫\mathcal{P} be a collection of projective measurements indexed by some sets

  • 𝓆\mathpzc{q} be an efficiently constructible mixed state

  • D0D_{0} and D1D_{1} be two efficienctly samplable and computationally indistinguishable distributions over \mathcal{I}.

For any inverse polynomial ϵ\epsilon, there exists a negligible function δ\delta such that

Tr[𝒯γϵ(𝒫𝒟1)𝓆]Tr[𝒯γ(𝒫𝒟0)𝓆]δ,\Tr[\mathpzc{TI}_{\gamma-\epsilon}(\mathcal{P}_{D_{1}})\mathpzc{q}]\geq\Tr[\mathpzc{TI}_{\gamma}(\mathcal{P}_{D_{0}})\mathpzc{q}]-\delta,

where 𝒫D𝖼𝗈𝗂𝗇\mathcal{P}_{D_{\mathsf{coin}}} is the mixture of projective measurements associated to 𝒫\mathcal{P}, D𝖼𝗈𝗂𝗇D_{\mathsf{coin}}, and 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\in\{0,1\}.

Cryptographic tools.

Before we introduce definitions, we introduce a convention. We say that a cryptographic scheme is sub-exponentially secure if there exists some constant 0<α<10<\alpha<1 such that for every QPT 𝒜\mathpzc{A} the advantage of the security game is bounded by O(2λα)O(2^{-\lambda^{\alpha}}).

Definition 7.11 (Learning with Errors).

Let n,m,qn,m,q\in\mathbb{N} be integer functions of the security parameter λ\lambda. Let χ=χ(λ)\chi=\chi(\lambda) be an error distribution over \mathbb{Z}. The LWE problem LWEn,m,q,χ\textrm{LWE}_{n,m,q,\chi} is to distinguish the following two distributions.

D0{(𝑨,𝒔𝑨+𝒆)𝑨qn×m,𝒔qn,𝒆χm} and D1{(𝑨,𝒖)𝑨qn×m,𝒖qm}.D_{0}\coloneqq\{(\boldsymbol{A},\boldsymbol{s}^{\intercal}\boldsymbol{A}+\boldsymbol{e})\mid\boldsymbol{A}\leftarrow\mathbb{Z}_{q}^{n\times m},\boldsymbol{s}\leftarrow\mathbb{Z}_{q}^{n},\boldsymbol{e}\leftarrow\chi^{m}\}\text{ and }D_{1}\coloneqq\{(\boldsymbol{A},\boldsymbol{u})\mid\boldsymbol{A}\leftarrow\mathbb{Z}_{q}^{n\times m},\boldsymbol{u}\leftarrow\mathbb{Z}_{q}^{m}\}.

When we say we assume the hardness of the LWE problem or the QLWE assumption holds, we assume that for any QPT adversary 𝒜\mathpzc{A}, it holds that

|Pr[𝒜(𝒟0)=1]Pr[𝒜(𝒟1)=1]|𝗇𝖾𝗀𝗅(λ).\absolutevalue{\Pr[\mathpzc{A}(D_{0})=1]-\Pr[\mathpzc{A}(D_{1})=1]}\leq{\mathsf{negl}}(\lambda).
Definition 7.12 (Puncturable PRF).

A puncturable PRF (PPRF) is a tuple of algorithms 𝖯𝖯𝖱𝖥=(𝖯𝖱𝖥.𝖦𝖾𝗇,𝖥,𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾)\mathsf{PPRF}=(\mathsf{PRF}.\mathsf{Gen},\mathsf{F},\mathsf{Puncture}) where {𝖥K:{0,1}1{0,1}2K{0,1}λ}\{\mathsf{F}_{K}:\{0,1\}^{\ell_{1}}\rightarrow\{0,1\}^{\ell_{2}}\mid K\in\{0,1\}^{\lambda}\} is a PRF family and satisfies the following two conditions. Note that 1\ell_{1} and 2\ell_{2} are polynomials of λ\lambda.

Punctured correctness:

For any polynomial-size set S{0,1}1S\subseteq\{0,1\}^{\ell_{1}} and any x{0,1}1Sx\in\{0,1\}^{\ell_{1}}\setminus S, it holds that

Pr[𝖥K(x)=𝖥KS(x)K𝖯𝖱𝖥.𝖦𝖾𝗇(1λ),KS𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(K,S)]=1.\displaystyle\Pr[\mathsf{F}_{K}(x)=\mathsf{F}_{K_{\notin S}}(x)\mid K\leftarrow\mathsf{PRF}.\mathsf{Gen}(1^{\lambda}),K_{\notin S}\leftarrow\mathsf{Puncture}(K,S)]=1. (34)
Pseudorandom at punctured point:

For any polynomial-size set S{0,1}1S\subseteq\{0,1\}^{\ell_{1}} and any QPT distinguisher 𝒜\mathpzc{A}, it holds that

|Pr[𝒜(𝖥𝒦𝒮,{𝖥𝒦(𝓍𝒾)}𝓍𝒾𝒮)=1]Pr[𝒜(𝖥𝒦𝒮,(𝒰2)|𝒮|)=1]|𝗇𝖾𝗀𝗅(λ),\displaystyle|\Pr[\mathpzc{A}(\mathsf{F}_{K_{\notin S}},\{\mathsf{F}_{K}(x_{i})\}_{x_{i}\in S})=1]-\Pr[\mathpzc{A}(\mathsf{F}_{K_{\notin S}},(\mathcal{U}_{\ell_{2}})^{\absolutevalue{S}})=1]|\leq{\mathsf{negl}}(\lambda), (35)

where K𝖯𝖱𝖥.𝖦𝖾𝗇(1λ)K\leftarrow\mathsf{PRF}.\mathsf{Gen}(1^{\lambda}), KS𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(K,S)K_{\notin S}\leftarrow\mathsf{Puncture}(K,S) and 𝒰2\mathcal{U}_{\ell_{2}} denotes the uniform distribution over {0,1}2\{0,1\}^{\ell_{2}}.

If S={x}S=\{x^{\ast}\} (i.e., puncturing a single point), we simply write 𝖥x()\mathsf{F}_{\neq x^{\ast}}(\cdot) instead of 𝖥KS()\mathsf{F}_{K_{\notin S}}(\cdot) and consider 𝖥x\mathsf{F}_{\neq x^{\ast}} as a keyed function.

It is easy to see that the Goldwasser-Goldreich-Micali tree-based construction of PRFs (GGM PRF) [GGM86] from one-way function yield puncturable PRFs where the size of the punctured key grows polynomially with the size of the set SS being punctured [BW13, BGI14, KPTZ13]. Thus, we have:

Theorem 7.13 ([GGM86, BW13, BGI14, KPTZ13]).

If OWFs exist, then for any polynomials 1(λ)\ell_{1}(\lambda) and 2(λ)\ell_{2}(\lambda), there exists a PPRF that maps 1\ell_{1}-bits to 2\ell_{2}-bits.

Definition 7.14 (Public-Key Functional Encryption).

A PKFE scheme 𝖯𝖪𝖥𝖤\mathsf{PKFE} is a tuple of four PPT algorithms (𝖲𝖾𝗍𝗎𝗉,𝖪𝖦,𝖤𝗇𝖼,𝖣𝖾𝖼)(\mathsf{Setup},\mathsf{KG},\mathsf{Enc},\mathsf{Dec}). Below, let 𝒳\mathcal{X}, 𝒴\mathcal{Y}, and \mathcal{F} be the plaintext, output, and function spaces of 𝖯𝖪𝖥𝖤\mathsf{PKFE}, respectively.

𝖲𝖾𝗍𝗎𝗉(1λ)(𝗉𝗄,𝗆𝗌𝗄)\mathsf{Setup}(1^{\lambda})\rightarrow(\mathsf{pk},\mathsf{msk}):

The setup algorithm takes a security parameter 1λ1^{\lambda} and outputs a public key 𝗉𝗄\mathsf{pk} and master secret key 𝗆𝗌𝗄\mathsf{msk}.

𝖪𝖦(𝗆𝗌𝗄,f)𝗌𝗄f\mathsf{KG}(\mathsf{msk},f)\rightarrow\mathsf{sk}_{f}:

The key generation algorithm 𝖪𝖦\mathsf{KG} takes a master secret key 𝗆𝗌𝗄\mathsf{msk} and a function ff\in\mathcal{F}, and outputs a functional decryption key 𝗌𝗄f\mathsf{sk}_{f}.

𝖤𝗇𝖼(𝗉𝗄,x)𝖼𝗍\mathsf{Enc}(\mathsf{pk},x)\rightarrow\mathsf{ct}:

The encryption algorithm takes a public key 𝗉𝗄\mathsf{pk} and a message x𝒳x\in\mathcal{X}, and outputs a ciphertext 𝖼𝗍\mathsf{ct}.

𝖣𝖾𝖼(𝗌𝗄f,𝖼𝗍)y\mathsf{Dec}(\mathsf{sk}_{f},\mathsf{ct})\rightarrow y:

The decryption algorithm takes a functional decryption key 𝗌𝗄f\mathsf{sk}_{f} and a ciphertext 𝖼𝗍\mathsf{ct}, and outputs y{}𝒴y\in\{\bot\}\cup\mathcal{Y}.

Correctness:

We require we have that

Pr[𝖣𝖾𝖼(𝗌𝗄f,𝖼𝗍)=f(x)|(𝗉𝗄,𝗆𝗌𝗄)𝖲𝖾𝗍𝗎𝗉(1λ),𝗌𝗄f𝖪𝖦(𝗆𝗌𝗄,f),𝖼𝗍𝖤𝗇𝖼(𝗉𝗄,x)]=1𝗇𝖾𝗀𝗅(λ).\Pr\left[\mathsf{Dec}(\mathsf{sk}_{f},\mathsf{ct})=f(x)\ \middle|\begin{array}[]{rl}&(\mathsf{pk},\mathsf{msk})\leftarrow\mathsf{Setup}(1^{\lambda}),\\ &\mathsf{sk}_{f}\leftarrow\mathsf{KG}(\mathsf{msk},f),\\ &\mathsf{ct}\leftarrow\mathsf{Enc}(\mathsf{pk},x)\end{array}\right]=1-{\mathsf{negl}}(\lambda).

Note that 𝖲𝖾𝗍𝗎𝗉\mathsf{Setup} does not take collusion bound 1q1^{q} unlike SKFE in Definition 2.6 since we consider only single-key and collusion-resistant PKFE in this work.

Definition 7.15 (Adaptive Indistinguishability-Security for PKFE).

We say that 𝖯𝖪𝖥𝖤\mathsf{PKFE} is an adaptively indistinguishability-secure SDFE scheme for 𝒳,𝒴\mathcal{X},\mathcal{Y}, and \mathcal{F}, if it satisfies the following requirement, formalized from the experiment 𝖤𝗑𝗉𝒜𝖺𝖽𝖺-𝗂𝗇𝖽(1λ,𝖼𝗈𝗂𝗇)\mathsf{Exp}_{\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{ind}}(1^{\lambda},\mathsf{coin}) between an adversary 𝒜\mathpzc{A} and a challenger:

  1. 1.

    The challenger runs (𝗉𝗄,𝗆𝗌𝗄)𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{pk},\mathsf{msk})\leftarrow\mathsf{Setup}(1^{\lambda}) and sends 𝗉𝗄\mathsf{pk} to 𝒜\mathpzc{A}.

  2. 2.

    𝒜\mathpzc{A} sends arbitrary key queries. That is, 𝒜\mathpzc{A} sends function fif_{i}\in\mathcal{F} to the challenger and the challenger responds with 𝗌𝗄fi𝖪𝖦(𝗆𝗌𝗄,fi)\mathsf{sk}_{f_{i}}\leftarrow\mathsf{KG}(\mathsf{msk},f_{i}) for the ii-th query fif_{i}.

  3. 3.

    At some point, 𝒜\mathpzc{A} sends (x0,x1)(x_{0},x_{1}) to the challenger. If fi(x0)=fi(x1)f_{i}(x_{0})=f_{i}(x_{1}) for all ii, the challenger generates a ciphertext 𝖼𝗍𝖤𝗇𝖼(𝗉𝗄,x𝖼𝗈𝗂𝗇)\mathsf{ct}^{*}\leftarrow\mathsf{Enc}(\mathsf{pk},x_{\mathsf{coin}}). The challenger sends 𝖼𝗍\mathsf{ct}^{*} to 𝒜\mathpzc{A}.

  4. 4.

    Again, 𝒜\mathpzc{A} can sends function queries fif_{i} such that fi(x0)=fi(x1)f_{i}(x_{0})=f_{i}(x_{1}).

  5. 5.

    𝒜\mathpzc{A} outputs a guess 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} for 𝖼𝗈𝗂𝗇\mathsf{coin}.

  6. 6.

    The experiment outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}.

We say that 𝖯𝖪𝖥𝖤\mathsf{PKFE} is adaptively indistinguishability-secure if, for any QPT 𝒜\mathpzc{A}, it holds that

𝖠𝖽𝗏𝖯𝖪𝖥𝖤,𝒜𝖺𝖽𝖺-𝗂𝗇𝖽(λ)|Pr[𝖤𝗑𝗉𝖯𝖪𝖥𝖤,𝒜𝖺𝖽𝖺-𝗂𝗇𝖽(1λ,0)=1]Pr[𝖤𝗑𝗉𝖯𝖪𝖥𝖤,𝒜𝖺𝖽𝖺-𝗂𝗇𝖽(1λ,1)=1]|𝗇𝖾𝗀𝗅(λ).\displaystyle\mathsf{Adv}_{\mathsf{PKFE},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{ind}}(\lambda)\coloneqq\absolutevalue{\Pr[\mathsf{Exp}_{\mathsf{PKFE},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{ind}}(1^{\lambda},0)=1]-\Pr[\mathsf{Exp}_{\mathsf{PKFE},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{ind}}(1^{\lambda},1)=1]}\leq{\mathsf{negl}}(\lambda). (36)

If 𝒜\mathpzc{A} can send only one key query during the experiment, we say 𝖯𝖪𝖥𝖤\mathsf{PKFE} is adaptively single-key indistinguishability-secure.

Theorem 7.16 ([GVW12]).

If there exists PKE, there exists adaptively single-key indistinguishability-secure PKFE for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly}.

Definition 7.17 (Indistinguishability Obfuscator [BGI+12]).

A PPT algorithm i𝒪i\mathcal{O} is a secure IO for a classical circuit class {𝒞λ}λ\{\mathcal{C}_{\lambda}\}_{\lambda\in\mathbb{N}} if it satisfies the following two conditions.

Functionality:

For any security parameter λ\lambda\in\mathbb{N}, circuit C𝒞λC\in\mathcal{C}_{\lambda}, and input xx, we have that

Pr[C(x)=C(x)Ci𝒪(C)]=1.\displaystyle\Pr[C^{\prime}(x)=C(x)\mid C^{\prime}\leftarrow i\mathcal{O}(C)]=1\enspace. (37)
Indistinguishability:

For any PPT 𝖲𝖺𝗆𝗉\mathsf{Samp} and QPT distinguisher 𝒟\mathpzc{D}, the following holds:

If Pr[xC0(x)=C1(x)|C0|=|C1|(C0,C1,𝖺𝗎𝗑)𝖲𝖺𝗆𝗉(1λ)]>1𝗇𝖾𝗀𝗅(λ)\Pr[\forall x\ C_{0}(x)=C_{1}(x)\land\absolutevalue{C_{0}}=\absolutevalue{C_{1}}\mid(C_{0},C_{1},\mathsf{aux})\leftarrow\mathsf{Samp}(1^{\lambda})]>1-{\mathsf{negl}}(\lambda), then we have

𝖠𝖽𝗏i𝒪,𝒟𝗂𝗈(λ)\displaystyle\mathsf{Adv}_{i\mathcal{O},\mathpzc{D}}^{\mathsf{io}}(\lambda) |Pr[𝒟(𝒾𝒪(𝒞0),𝖺𝗎𝗑)=1(𝒞0,𝒞1,𝖺𝗎𝗑)𝖲𝖺𝗆𝗉(1λ)]\displaystyle\coloneqq\left|\Pr\left[\mathpzc{D}(i\mathcal{O}(C_{0}),\mathsf{aux})=1\mid(C_{0},C_{1},\mathsf{aux})\leftarrow\mathsf{Samp}(1^{\lambda})\right]\right. (38)
Pr[𝒟(𝒾𝒪(𝒞1),𝖺𝗎𝗑)=1(𝒞0,𝒞1,𝖺𝗎𝗑)𝖲𝖺𝗆𝗉(1λ)]|𝗇𝖾𝗀𝗅(λ).\displaystyle~{}~{}~{}~{}~{}~{}~{}\left.-\Pr\left[\mathpzc{D}(i\mathcal{O}(C_{1}),\mathsf{aux})=1\mid(C_{0},C_{1},\mathsf{aux})\leftarrow\mathsf{Samp}(1^{\lambda})\right]\right|\leq{\mathsf{negl}}(\lambda). (39)

There are a few candidates of secure IO for polynomial-size classical circuits against quantum adversaries [BGMZ18, CHVW19, AP20, DQV+21].

7.2 Single-Decryptor Encryption

We review the notion of single-decryptor encryption (SDE) [GZ20, CLLZ21] since it is a crucial building block of our SDFE schemes. We also extend the existing definitions for SDE. Some definitions are taken from the paper by Coladangelo et al. [CLLZ21].

Definition 7.18 (Single-Decryptor Encryption [CLLZ21]).

A single-decryptor encryption scheme 𝖲𝖣𝖤\mathsf{SDE} is a tuple of four algorithms (𝖲𝖾𝗍𝗎𝗉,𝒬𝒦𝒢,𝖤𝗇𝖼,𝒟𝒸)(\mathsf{Setup},\mathpzc{QKG},\mathsf{Enc},\mathpzc{Dec}). Below, let \mathcal{M} be the message space of 𝖲𝖣𝖤\mathsf{SDE}.

𝖲𝖾𝗍𝗎𝗉(1λ)(𝗉𝗄,𝗌𝗄)\mathsf{Setup}(1^{\lambda})\rightarrow(\mathsf{pk},\mathsf{sk}):

The setup algorithm takes a security parameter 1λ1^{\lambda}, and outputs a public key 𝗉𝗄\mathsf{pk} and a secret key 𝗌𝗄\mathsf{sk}.

𝒬𝒦𝒢(𝗌𝗄)𝓈𝓀\mathpzc{QKG}(\mathsf{sk})\rightarrow\mathpzc{sk}:

The key generation algorithm 𝒬𝒦𝒢\mathpzc{QKG} takes a secret key 𝗌𝗄\mathsf{sk}, and outputs a quantum decryption key 𝓈𝓀\mathpzc{sk}.

𝖤𝗇𝖼(𝗉𝗄,m)𝖼𝗍\mathsf{Enc}(\mathsf{pk},m)\rightarrow\mathsf{ct}:

The encryption algorithm takes a public key 𝗉𝗄\mathsf{pk} and a message mm\in\mathcal{M}, and outputs a ciphertext 𝖼𝗍\mathsf{ct}.

𝒟𝒸(𝓈𝓀,𝖼𝗍)𝓂~\mathpzc{Dec}(\mathpzc{sk},\mathsf{ct})\rightarrow\tilde{m}:

The decryption algorithm takes a quantum decryption key 𝓈𝓀\mathpzc{sk} and a ciphertext 𝖼𝗍\mathsf{ct}, and outputs a message m~{}\tilde{m}\in\{\bot\}\cup\mathcal{M}.

Correctness:

We require 𝒟𝒸(𝓈𝓀,𝖼𝗍)=𝓂\mathpzc{Dec}(\mathpzc{sk},\mathsf{ct})\allowbreak=m for every mm\in\mathcal{M}, (𝗌𝗄,𝗉𝗄)𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{sk},\mathsf{pk})\leftarrow\mathsf{Setup}(1^{\lambda}), 𝓈𝓀𝒬𝒦𝒢(𝗌𝗄)\mathpzc{sk}\leftarrow\mathpzc{QKG}(\mathsf{sk}), and 𝖼𝗍𝖤𝗇𝖼(𝗉𝗄,m)\mathsf{ct}\leftarrow\mathsf{Enc}(\mathsf{pk},m).

Note that 𝖲𝖾𝗍𝗎𝗉\mathsf{Setup} and 𝖤𝗇𝖼\mathsf{Enc} are classical algorithms. Although they could be quantum algorithms, we select the definition above since the construction by Coladangelo et al. [CLLZ21] satisfies it. This property is crucial in our schemes.

Definition 7.19 (CPA Security).

An SDE scheme satisfies CPA security if for any (stateful) QPT 𝒜\mathpzc{A}, it holds that

2|Pr[𝒜(𝖼𝗍𝒷)=𝒷|(𝗉𝗄,𝗌𝗄)𝖲𝖾𝗍𝗎𝗉(1λ),(𝓂0,𝓂1)𝒜(𝗉𝗄),𝒷{0,1},𝖼𝗍𝒷𝖤𝗇𝖼(𝗉𝗄,𝓂𝒷)]12|𝗇𝖾𝗀𝗅(λ).2\absolutevalue{\Pr\left[\mathpzc{A}(\mathsf{ct}_{b})=b\ \middle|\begin{array}[]{rl}&(\mathsf{pk},\mathsf{sk})\leftarrow\mathsf{Setup}(1^{\lambda}),\\ &(m_{0},m_{1})\leftarrow\mathpzc{A}(\mathsf{pk}),b\leftarrow\{0,1\},\\ &\mathsf{ct}_{b}\leftarrow\mathsf{Enc}(\mathsf{pk},m_{b})\end{array}\right]-\frac{1}{2}}\leq{\mathsf{negl}}(\lambda).
Definition 7.20 (Quantum Decryptor [CLLZ21]).

Let 𝓅\mathpzc{p} and 𝐔\boldsymbol{U} be a quantum state and a general quantum circuit acting on n+mn+m qubits, where mm is the number of qubits of 𝓅\mathpzc{p} and nn is the length of ciphertexts. A quantum decryptor for ciphertexts is a pair (𝓅,𝓤)(\mathpzc{p},\boldsymbol{U}).

When we say that we run the quantum decryptor (𝓅,𝓤)(\mathpzc{p},\boldsymbol{U}) on ciphertext 𝖼𝗍\mathsf{ct}, we execute the circuit 𝐔\boldsymbol{U} on inputs |𝖼𝗍\ket{\mathsf{ct}} and 𝓅\mathpzc{p}.

Coladangelo et al. [CLLZ21] introduced a few security notions for SDE. We introduce the stronger security notion among them, γ\gamma-anti-piracy security.

Definition 7.21 (Testing a Quantum Decryptor [CLLZ21]).

Let γ[0,1]\gamma\in[0,1]. Let 𝗉𝗄\mathsf{pk} and (m0,m1)(m_{0},m_{1}) be a public key and a pair of messages, respectively. A test for a γ\gamma-good quantum decryptor with respect to 𝗉𝗄\mathsf{pk} and (m0,m1)(m_{0},m_{1}) is the following procedure.

  • The procedure takes as input a quantum decryptor 𝒟=(𝓆,U)\mathpzc{D}=(\mathpzc{q},\boldsymbol{U}).

  • Let 𝒫=(𝑷,𝑰𝑷)\mathcal{P}=(\boldsymbol{P},\boldsymbol{I}-\boldsymbol{P}) be the following mixture of projective measurements acting on some quantum state 𝓆\mathpzc{q}^{\prime}:

    • Sample a uniformly random 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\} and compute 𝖼𝗍𝖤𝗇𝖼(𝗉𝗄,m𝖼𝗈𝗂𝗇)\mathsf{ct}\leftarrow\mathsf{Enc}(\mathsf{pk},m_{\mathsf{coin}}).

    • Run m𝒟(𝖼𝗍)m^{\prime}\leftarrow\mathpzc{D}(\mathsf{ct}). If m=m𝖼𝗈𝗂𝗇m^{\prime}=m_{\mathsf{coin}}, output 11, otherwise output 0.

    Let 𝒯1/2+γ(𝒫)\mathpzc{TI}_{1/2+\gamma}(\mathcal{P}) be the threshold implementation of 𝒫\mathcal{P} with threshold 12+γ\frac{1}{2}+\gamma. Apply 𝒯1/2+γ(𝒫)\mathpzc{TI}_{1/2+\gamma}(\mathcal{P}) to 𝓆\mathpzc{q}. If the outcome is 11, we say that the test passed, otherwise the test failed.

Definition 7.22 (Strong Anti-Piracy Security [CLLZ21]).

Let γ[0,1]\gamma\in[0,1]. We consider the strong γ\gamma-anti-piracy game 𝖤𝗑𝗉𝖲𝖣𝖤,𝒜𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒(λ,γ(λ))\mathsf{Exp}_{\mathsf{SDE},\mathpzc{A}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}}(\lambda,\gamma(\lambda)) between the challenger and an adversary 𝒜\mathpzc{A} below.

  1. 1.

    The challenger generates (𝗉𝗄,𝗌𝗄)𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{pk},\mathsf{sk})\leftarrow\mathsf{Setup}(1^{\lambda}).

  2. 2.

    The challenger generates 𝓈𝓀𝒬𝒦𝒢(𝗌𝗄)\mathpzc{sk}\leftarrow\mathpzc{QKG}(\mathsf{sk}) and sends (𝗉𝗄,𝓈𝓀)(\mathsf{pk},\mathpzc{sk}) to 𝒜\mathpzc{A}.

  3. 3.

    𝒜\mathpzc{A} outputs (m0,m1)(m_{0},m_{1}) and two (possibly entangled) quantum decryptors 𝒟1=(𝓆[𝖱1],U1)\mathpzc{D}_{1}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],\boldsymbol{U}_{1}) and 𝒟2=(𝓆[𝖱2],U2)\mathpzc{D}_{2}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],\boldsymbol{U}_{2}), where m0m1m_{0}\neq m_{1}, |m0|=|m1|\absolutevalue{m_{0}}=\absolutevalue{m_{1}}, 𝓆\mathpzc{q} is a quantum state over registers 𝖱1{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1} and 𝖱2{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}, and 𝑼1\boldsymbol{U}_{1} and 𝑼2\boldsymbol{U}_{2} are general quantum circuits.

  4. 4.

    The challenger runs the test for a γ\gamma-good decryptor with respect to (m0,m1)(m_{0},m_{1}) on 𝒟1\mathpzc{D}_{1} and 𝒟2\mathpzc{D}_{2}. The challenger outputs 11 if both tests pass; otherwise outputs 0.

We say that 𝖲𝖣𝖤\mathsf{SDE} is strong γ\gamma-anti-piracy secure if for any QPT adversary 𝒜\mathpzc{A}, it satisfies that

Pr[𝖤𝗑𝗉𝖲𝖣𝖤,𝒜𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒(λ,γ(λ))=1]𝗇𝖾𝗀𝗅(λ).\Pr[\mathsf{Exp}_{\mathsf{SDE},\mathpzc{A}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}}(\lambda,\gamma(\lambda))=1]\leq{\mathsf{negl}}(\lambda).
Theorem 7.23 ([CLLZ21, CV21]).

Assuming the existence of sub-exponentially secure IO for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} and OWFs, the hardness of QLWE, there exists an SDE scheme that satisfies strong γ\gamma-anti-piracy security for any inverse polynomial γ\gamma.

Extension of SDE.

We define a more liberal security notion for γ\gamma-anti-piracy security of SDE to use an SDE scheme as a building block of some cryptographic primitive.

We define a slightly stronger version of quantum decryptor than that in Definition 7.20.

Definition 7.24 (Testing a Quantum Distinguisher for Randomized Message).

Let γ[0,1]\gamma\in[0,1]. Let 𝗉𝗄\mathsf{pk} and (m0,m1)(m_{0},m_{1}) be a public key and a pair of messages, respectively. Let 𝒢={𝒢λ}λ\mathcal{G}=\{\mathcal{G}_{\lambda}\}_{\lambda\in\mathbb{N}} be a function family. A test for a γ\gamma-good quantum distinguisher with respect to 𝗉𝗄\mathsf{pk} and (m0,m1,g𝒢λ)(m_{0},m_{1},g\in\mathcal{G}_{\lambda}) is the following procedure.

  • The procedure takes as input a quantum decryptor 𝒟=(𝓆,U)\mathpzc{D}=(\mathpzc{q},\boldsymbol{U}).

  • Let 𝒫=(𝑷,𝑰𝑷)\mathcal{P}=(\boldsymbol{P},\boldsymbol{I}-\boldsymbol{P}) be the following mixture of projective measurements acting on some quantum state 𝓆\mathpzc{q}^{\prime}:

    • Sample a uniformly random 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\} and rr\leftarrow\mathcal{R}, and compute 𝖼𝗍𝖤𝗇𝖼(𝗉𝗄,g(m𝖼𝗈𝗂𝗇;r))\mathsf{ct}\leftarrow\mathsf{Enc}(\mathsf{pk},g(m_{\mathsf{coin}};r)).

    • Run 𝖼𝗈𝗂𝗇𝒟(𝖼𝗍)\mathsf{coin}^{\prime}\leftarrow\mathpzc{D}(\mathsf{ct}). If 𝖼𝗈𝗂𝗇=𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}=\mathsf{coin}, output 11, otherwise output 0.

    Let 𝒯1/2+γ(𝒫)\mathpzc{TI}_{1/2+\gamma}(\mathcal{P}) be the threshold implementation of 𝒫\mathcal{P} with threshold 12+γ\frac{1}{2}+\gamma. Apply 𝒯1/2+γ(𝒫)\mathpzc{TI}_{1/2+\gamma}(\mathcal{P}) to 𝓆\mathpzc{q}. If the outcome is 11, we say that the test passed, otherwise the test failed.

The definition above is different from Definition 7.21. First, we apply a randomized function to m𝖼𝗈𝗂𝗇m_{\mathsf{coin}} and encrypt g(m𝖼𝗈𝗂𝗇;r)g(m_{\mathsf{coin}};r). Second, 𝒟\mathpzc{D} distinguish whether 𝖼𝗍\mathsf{ct} is a ciphertext of g(m0;r)g(m_{0};r) or g(m1;r)g(m_{1};r) rather than computing g(m𝖼𝗈𝗂𝗇;r)g(m_{\mathsf{coin}};r) (or m𝖼𝗈𝗂𝗇m_{\mathsf{coin}}). These differences are crucial when using SDE as a building block of some cryptographic primitive.

We finished preparation for defining a new security notion for SDE. In the security game defined below, the adversary can send a randomized function applied to challenge messages by the challenger.

Definition 7.25 (Strong Anti-Piracy Security for Randomized Message).

Let γ[0,1]\gamma\in[0,1]. We consider the strong γ\gamma-anti-piracy with randomized function family 𝒢={𝒢λ}λ\mathcal{G}=\{\mathcal{G}_{\lambda}\}_{\lambda\in\mathbb{N}} game 𝖤𝗑𝗉𝖲𝖣𝖤,𝒜,𝒢𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒-𝗋𝖺𝗇𝖽(λ,γ(λ))\mathsf{Exp}_{\mathsf{SDE},\mathpzc{A},\mathcal{G}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}\mbox{-}\mathsf{rand}}(\lambda,\gamma(\lambda)) between the challenger and an adversary 𝒜\mathpzc{A} below.

  1. 1.

    The challenger generates (𝗉𝗄,𝗌𝗄)𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{pk},\mathsf{sk})\leftarrow\mathsf{Setup}(1^{\lambda}).

  2. 2.

    The challenger generates 𝓈𝓀𝒬𝒦𝒢(𝗌𝗄)\mathpzc{sk}\leftarrow\mathpzc{QKG}(\mathsf{sk}) and sends (𝗉𝗄,𝓈𝓀)(\mathsf{pk},\mathpzc{sk}) to 𝒜\mathpzc{A}.

  3. 3.

    𝒜\mathpzc{A} outputs (m0,m1)(m_{0},m_{1}), g𝒢λg\in\mathcal{G}_{\lambda}, and two (possibly entangled) quantum decryptors 𝒟1=(𝓆[𝖱1],U1)\mathpzc{D}_{1}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],\boldsymbol{U}_{1}) and 𝒟2=(𝓆[𝖱2],U2)\mathpzc{D}_{2}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],\boldsymbol{U}_{2}), where |m0|=|m1|\absolutevalue{m_{0}}=\absolutevalue{m_{1}}, 𝓆\mathpzc{q} is a quantum state over registers 𝖱1{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1} and 𝖱2{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}, and 𝑼1\boldsymbol{U}_{1} and 𝑼2\boldsymbol{U}_{2} are general quantum circuits.

  4. 4.

    The challenger runs the test for a γ\gamma-good distinguisher with respect to 𝗉𝗄\mathsf{pk} and (m0,m1,g)(m_{0},m_{1},g) on 𝒟1\mathpzc{D}_{1} and 𝒟2\mathpzc{D}_{2}. The challenger outputs 11 if both tests pass; otherwise outputs 0.

We say that 𝖲𝖣𝖤\mathsf{SDE} is strong γ\gamma-anti-piracy secure with randomized function family 𝒢\mathcal{G} if for any QPT adversary 𝒜\mathpzc{A}, it satisfies that

Pr[𝖤𝗑𝗉𝖲𝖣𝖤,𝒜,𝒢𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒-𝗋𝖺𝗇𝖽(λ,γ(λ))=1]𝗇𝖾𝗀𝗅(λ).\Pr[\mathsf{Exp}_{\mathsf{SDE},\mathpzc{A},\mathcal{G}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}\mbox{-}\mathsf{rand}}(\lambda,\gamma(\lambda))=1]\leq{\mathsf{negl}}(\lambda).

Note that we remove the restriction m0m1m_{0}\neq m_{1}, which is in Definition 7.22, since the adversary has no advantage even if it sets m0=m1m_{0}=m_{1}.

We do not know how to prove that an SDE scheme that satisfies strong γ\gamma-anti-piracy secure also satisfies strong γ\gamma-anti-piracy secure with randomized function in a black-box way. This is because the adversary 𝒜\mathpzc{A} does not receive a challenge ciphertext, but quantum decryptor 𝒟1\mathpzc{D}_{1} and 𝒟2\mathpzc{D}_{2} receives it. That is, a reduction that plays the role of 𝒜\mathpzc{A} does not receive the challenge ciphertext. 141414In the standard PKE setting, it is easy to see that the standard CPA security implies the liberal CPA security variant, where the adversary select not only (m0,m1)(m_{0},m_{1}) but also g𝒢λg\in\mathcal{G}_{\lambda}.

However, it is easy to see that the SDE scheme by Coladangelo et al. [CLLZ21] satisfies strong γ\gamma-anti-piracy secure with randomized function family 𝒢\mathcal{G}. Intuitively, selecting gg does not give more power to adversaries since they can select any (m0,m1)(m_{0},m_{1}) in the original strong anti-piracy security. We can easily obtain the following theorem.

Theorem 7.26 ([CLLZ21, CV21]).

Assuming the existence of sub-exponentially secure IO for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} and OWFs, the hardness of QLWE, and 𝒢\mathcal{G} is a randomized function family, there exists an SDE scheme that satisfies strong γ\gamma-anti-piracy security with randomize function family 𝒢\mathcal{G} for any inverse polynomial γ\gamma.

The proof of Theorem 7.26 is almost the same as that of the strong anti-piracy security of the SDE by Coladangelo et al. [CLLZ21, Theorem 6.13 in the eprint ver.]. We explain only the differences to avoid replication.

On randomized message.

To obtain this theorem, we simply replace mbm_{b} with g(mb;rb)g(m_{b};r_{b}) in the proof by Coladangelo et al. [CLLZ21, Section 6.4 in the ePrint ver.], where rbr_{b} is randomness chosen by the challenger. The intuition is as follows. Even if the challenger applies the adversarially chosen randomized function gg to m0m_{0} or m1m_{1}, it does not give more power to the adversary for breaking strong γ\gamma-anti-piracy security. This is because the adversary can send any two messages (m0,m1)(m_{0},m_{1}) as a challenge message pair in the original strong γ\gamma-anti-piracy security game. The proof by Coladangelo et al. [CLLZ21] does not use any specific property of challenge messages. The one issue is whether g(m0;r0)g(m1;r1)g(m_{0};r_{0})\neq g(m_{1};r_{1}) holds for any r0,r1r_{0},r_{1}\in\mathcal{R} since the original strong γ\gamma-anti-piracy game requires that challenge messages must be different. However, this restriction is just a convention. If the adversary sets m0=m1m_{0}=m_{1}, it just loses how to distinguish ciphertexts. That is, even if g(m0;r0)=g(m1;r1)g(m_{0};r_{0})=g(m_{1};r_{1}) happens, it does not give more power to the adversary, and is not a problem.

On distinguish-based definition.

We require a pirate to be a distinguisher rather than a decryptor (computing entire m𝖼𝗈𝗂𝗇m_{\mathsf{coin}}). In general, security against distinguisher-based pirates is not implied by security against decryptor-based pirates since adversaries do not need to compute the entire m𝖼𝗈𝗂𝗇m_{\mathsf{coin}} in the distinguisher-based definition (the requirement on adversaries is milder).

In the original proof by Coladangelo et al. [CLLZ21], they show that if pirate decryptors compute m𝖼𝗈𝗂𝗇m_{\mathsf{coin}}, the reduction can distinguish whether a ciphertext is a real compute-and-compare obfuscation or a simulated compute-and-compare obfuscation.151515The SDE scheme by Coladangelo et al. [CLLZ21] is constructed from IO and compute-and-compare obfuscation [WZ17, GKW17]. This breaks the unpredictability of the supported distribution in compute-and-compare obfuscation. Thus, pirate decryptors cannot compute m𝖼𝗈𝗂𝗇m_{\mathsf{coin}}. Here, even if pirate decryptors only distinguish m0m_{0} from m1m_{1} (that is, the output of 𝒟\mathpzc{D} is only one-bit information) instead of computing entire m𝖼𝗈𝗂𝗇m_{\mathsf{coin}}, the reduction can distinguish real or simulation for compute-and-compare obfuscation. This is because the security of compute-and-compare obfuscation is the decision-type. The reduction in the original proof use only information about 𝖼𝗈𝗂𝗇\mathsf{coin} and does not use m𝖼𝗈𝗂𝗇m_{\mathsf{coin}}. Thus, we can prove strong γ\gamma-anti-piracy security with any randomized function family 𝒢\mathcal{G} defined in Definition 7.25.

Other security notions for SDE.

Coladangelo et al. introduced a few variants of anti-piracy security [CLLZ21]. One is the CPA-style anti-piracy security, and the other is the anti-piracy security with random challenge plaintexts. Both are weaker than the strong anti-piracy security in the SDE setting. See Definition A.1 for the CPA-style definition. We omit the anti-piracy security with random challenge plaintexts since we do not use it in this work.

7.3 Definitions for Single-Decryptor Functional Encryption

We define the notion of single-decryptor functional encryption (SDFE).

Definition 7.27 (Single-Decryptor Functional Encryption).

A single-decryptor functional encryption scheme 𝖲𝖣𝖥𝖤\mathsf{SDFE} is a tuple of five algorithms (𝖲𝖾𝗍𝗎𝗉,𝖪𝖦,𝒬𝒦𝒢,𝖤𝗇𝖼,𝒟𝒸)(\mathsf{Setup},\allowbreak\mathsf{KG},\mathpzc{QKG},\mathsf{Enc},\mathpzc{Dec}). Below, let 𝒳\mathcal{X}, 𝒴\mathcal{Y}, and \mathcal{F} be the plaintext, output, and function spaces of 𝖲𝖣𝖥𝖤\mathsf{SDFE}.

𝖲𝖾𝗍𝗎𝗉(1λ)(𝗉𝗄,𝗆𝗌𝗄)\mathsf{Setup}(1^{\lambda})\rightarrow(\mathsf{pk},\mathsf{msk}):

The setup algorithm takes a security parameter 1λ1^{\lambda}, and outputs a public key 𝗉𝗄\mathsf{pk} and a master secret key 𝗆𝗌𝗄\mathsf{msk}.

𝒬𝒦𝒢(𝗆𝗌𝗄,𝒻)𝓈𝓀𝒻\mathpzc{QKG}(\mathsf{msk},f)\rightarrow\mathpzc{sk}_{f}:

The key generation algorithm takes a master secret key 𝗆𝗌𝗄\mathsf{msk} and a function ff\in\mathcal{F}, and outputs a quantum functional decryption key 𝓈𝓀𝒻\mathpzc{sk}_{f}.

𝖤𝗇𝖼(𝗉𝗄,x)𝖼𝗍\mathsf{Enc}(\mathsf{pk},x)\rightarrow\mathsf{ct}:

The encryption algorithm takes a public key 𝗉𝗄\mathsf{pk} and a plaintext x𝒳x\in\mathcal{X}, and outputs a ciphertext 𝖼𝗍\mathsf{ct}.

𝒟𝒸(𝓈𝓀𝒻,𝖼𝗍)𝓎\mathpzc{Dec}(\mathpzc{sk}_{f},\mathsf{ct})\rightarrow y:

The decryption algorithm takes a quantum functional decryption key 𝓈𝓀𝒻\mathpzc{sk}_{f} and a ciphertext 𝖼𝗍\mathsf{ct}, and outputs y{}𝒴y\in\{\bot\}\cup\mathcal{Y}.

Correctness:

For every λ\lambda\in\mathbb{N}, x𝒳x\in\mathcal{X}, ff\in\mathcal{F}, (𝗉𝗄,𝗆𝗌𝗄)(\mathsf{pk},\mathsf{msk}) in the support of 𝖲𝖾𝗍𝗎𝗉(1λ)\mathsf{Setup}(1^{\lambda}), we require that

𝒟𝒸(𝒬𝒦𝒢(𝗆𝗌𝗄,𝒻),𝖤𝗇𝖼(𝗉𝗄,𝓍))=𝒻(𝓍).\mathpzc{Dec}(\mathpzc{QKG}(\mathsf{msk},f),\mathsf{Enc}(\mathsf{pk},x))\allowbreak=f(x).

Note that 𝖲𝖾𝗍𝗎𝗉\mathsf{Setup} and 𝖤𝗇𝖼\mathsf{Enc} are classical algorithms as Definition 7.18.

Definition 7.28 (Adaptive Security for SDFE).

We say that 𝖲𝖣𝖥𝖤\mathsf{SDFE} is an adaptively secure SDFE scheme for 𝒳,𝒴\mathcal{X},\mathcal{Y}, and \mathcal{F}, if it satisfies the following requirement, formalized from the experiment 𝖤𝗑𝗉𝖲𝖣𝖥𝖤,𝒜𝖺𝖽𝖺-𝗂𝗇𝖽(1λ,𝖼𝗈𝗂𝗇)\mathsf{Exp}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{ind}}(1^{\lambda},\mathsf{coin}) between an adversary 𝒜\mathpzc{A} and a challenger:

  1. 1.

    The challenger runs (𝗉𝗄,𝗆𝗌𝗄)𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{pk},\mathsf{msk})\leftarrow\mathsf{Setup}(1^{\lambda}) and sends 𝗉𝗄\mathsf{pk} to 𝒜\mathpzc{A}.

  2. 2.

    𝒜\mathpzc{A} sends arbitrary key queries. That is, 𝒜\mathpzc{A} sends function fif_{i}\in\mathcal{F} to the challenger and the challenger responds with 𝓈𝓀𝒻𝒾𝒬𝒦𝒢(𝗆𝗌𝗄,𝒻𝒾)\mathpzc{sk}_{f_{i}}\leftarrow\mathpzc{QKG}(\mathsf{msk},f_{i}) for the ii-th query fif_{i}.

  3. 3.

    At some point, 𝒜\mathpzc{A} sends (x0,x1)(x_{0},x_{1}) to the challenger. If fi(x0)=fi(x1)f_{i}(x_{0})=f_{i}(x_{1}) for all ii, the challenger generates a ciphertext 𝖼𝗍𝖤𝗇𝖼(𝗉𝗄,x𝖼𝗈𝗂𝗇)\mathsf{ct}^{*}\leftarrow\mathsf{Enc}(\mathsf{pk},x_{\mathsf{coin}}). The challenger sends 𝖼𝗍\mathsf{ct}^{*} to 𝒜\mathpzc{A}.

  4. 4.

    Again, 𝒜\mathpzc{A} can sends function queries fif_{i} such that fi(x0)=fi(x1)f_{i}(x_{0})=f_{i}(x_{1}).

  5. 5.

    𝒜\mathpzc{A} outputs a guess 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} for 𝖼𝗈𝗂𝗇\mathsf{coin}.

  6. 6.

    The experiment outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}.

We say that 𝖲𝖣𝖥𝖤\mathsf{SDFE} is adaptively secure if, for any QPT 𝒜\mathpzc{A}, it holds that

𝖠𝖽𝗏𝖲𝖣𝖥𝖤,𝒜𝖺𝖽𝖺-𝗂𝗇𝖽(λ)|Pr[𝖤𝗑𝗉𝖲𝖣𝖥𝖤,𝒜𝖺𝖽𝖺-𝗂𝗇𝖽(1λ,0)=1]Pr[𝖤𝗑𝗉𝖲𝖣𝖥𝖤,𝒜𝖺𝖽𝖺-𝗂𝗇𝖽(1λ,1)=1]|𝗇𝖾𝗀𝗅(λ).\displaystyle\mathsf{Adv}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{ind}}(\lambda)\coloneqq\absolutevalue{\Pr[\mathsf{Exp}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{ind}}(1^{\lambda},0)=1]-\Pr[\mathsf{Exp}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{ind}}(1^{\lambda},1)=1]}\leq{\mathsf{negl}}(\lambda). (40)

If 𝒜\mathpzc{A} can send only one key query during the experiment, we say 𝖲𝖣𝖥𝖤\mathsf{SDFE} is adaptively single-key secure.

Definition 7.29 (Testing a Quantum FE Distinguisher).

Let γ[0,1]\gamma\in[0,1]. Let 𝗉𝗄\mathsf{pk}, (x0,x1)(x_{0},x_{1}), and ff^{\ast} be a public key, a pair of plaintexts, and a function respectively such that f(x0)f(x1)f^{\ast}(x_{0})\neq f^{\ast}(x_{1}). A test for a γ\gamma-good quantum FE distinguisher with respect to 𝗉𝗄\mathsf{pk}, (x0,x1)(x_{0},x_{1}), and ff^{\ast} is the following procedure.

  • The procedure takes as input a quantum FE decryptor 𝒟=(𝓆,U)\mathpzc{D}=(\mathpzc{q},\boldsymbol{U}).

  • Let 𝒫=(𝑷,𝑰𝑷)\mathcal{P}=(\boldsymbol{P},\boldsymbol{I}-\boldsymbol{P}) be the following mixture of projective measurements acting on some quantum state 𝓆\mathpzc{q}^{\prime}:

    • Sample a uniformly random 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\} and compute 𝖼𝗍𝖤𝗇𝖼(𝗉𝗄,x𝖼𝗈𝗂𝗇)\mathsf{ct}\leftarrow\mathsf{Enc}(\mathsf{pk},x_{\mathsf{coin}}).

    • Run 𝖼𝗈𝗂𝗇𝒟(𝖼𝗍)\mathsf{coin}^{\prime}\leftarrow\mathpzc{D}(\mathsf{ct}). If 𝖼𝗈𝗂𝗇=𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}=\mathsf{coin}, output 11; otherwise output 0.

    Let 𝒯1/2+γ(𝒫)\mathpzc{TI}_{1/2+\gamma}(\mathcal{P}) be the threshold implementation of 𝒫\mathcal{P} with threshold 12+γ\frac{1}{2}+\gamma. Apply 𝒯1/2+γ(𝒫)\mathpzc{TI}_{1/2+\gamma}(\mathcal{P}) to 𝓆\mathpzc{q}. If the outcome is 11, we say that the test passed, otherwise the test failed.

We follow the spirit of Definition 7.24. That is, we consider a quantum distinguisher rather than a quantum decryptor that computes f(x𝖼𝗈𝗂𝗇)f^{\ast}(x_{\mathsf{coin}}).

Definition 7.30 (Strong Anti-Piracy Security for FE).

Let γ[0,1]\gamma\in[0,1]. We consider the strong γ\gamma-anti-piracy game 𝖤𝗑𝗉𝖲𝖣𝖥𝖤,𝒜𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒(λ,γ(λ))\mathsf{Exp}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}}(\lambda,\gamma(\lambda)) between the challenger and an adversary 𝒜\mathpzc{A} below.

  1. 1.

    The challenger generates (𝗉𝗄,𝗆𝗌𝗄)𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{pk},\mathsf{msk})\leftarrow\mathsf{Setup}(1^{\lambda}) and sends 𝗉𝗄\mathsf{pk} to 𝒜\mathpzc{A}.

  2. 2.

    𝒜\mathpzc{A} sends key queries fif_{i} to the challenger and receives 𝓈𝓀𝒻𝒾𝒬𝒦𝒢(𝗆𝗌𝗄,𝒻𝒾)\mathpzc{sk}_{f_{i}}\leftarrow\mathpzc{QKG}(\mathsf{msk},f_{i}).

  3. 3.

    At some point 𝒜\mathpzc{A} sends a challenge query ff^{*} to the challenger and receives 𝓈𝓀𝒻𝒬𝒦𝒢(𝗆𝗌𝗄,𝒻)\mathpzc{sk}_{f^{*}}\leftarrow\mathpzc{QKG}(\mathsf{msk},f^{*}).

  4. 4.

    Again, 𝒜\mathpzc{A} sends fif_{i} to the challenger and receives 𝓈𝓀𝒻𝒾𝒬𝒦𝒢(𝗆𝗌𝗄,𝒻𝒾)\mathpzc{sk}_{f_{i}}\leftarrow\mathpzc{QKG}(\mathsf{msk},f_{i}).

  5. 5.

    𝒜\mathpzc{A} outputs (x0,x1)(x_{0},x_{1}) and two (possibly entangled) quantum decryptors 𝒟1=(𝓆[𝖱1],U1)\mathpzc{D}_{1}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],\boldsymbol{U}_{1}) and 𝒟2=(𝓆[𝖱2],U2)\mathpzc{D}_{2}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],\boldsymbol{U}_{2}), where ifi(x0)=fi(x1)\forall i\ f_{i}(x_{0})=f_{i}(x_{1}), f(x0)f(x1)f^{*}(x_{0})\neq f^{*}(x_{1}), 𝓆\mathpzc{q} is a quantum state over registers 𝖱1{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1} and 𝖱2{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}, and 𝑼1\boldsymbol{U}_{1} and 𝑼2\boldsymbol{U}_{2} are general quantum circuits.

  6. 6.

    The challenger runs the test for a γ\gamma-good FE distinguisher with respect to 𝗉𝗄\mathsf{pk}, (x0,x1)(x_{0},x_{1}), and ff^{\ast} on 𝒟1\mathpzc{D}_{1} and 𝒟2\mathpzc{D}_{2}. The challenger outputs 11 if both tests pass, otherwise outputs 0.

We say that 𝖲𝖣𝖥𝖤\mathsf{SDFE} is strong γ\gamma-anti-piracy secure if for any QPT adversary 𝒜\mathpzc{A}, it satisfies that

𝖠𝖽𝗏𝖲𝖣𝖥𝖤,𝒜𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒(λ,γ(λ))Pr[𝖤𝗑𝗉𝖲𝖣𝖥𝖤,𝒜𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒(λ,γ(λ))=1]𝗇𝖾𝗀𝗅(λ).\mathsf{Adv}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}}(\lambda,\gamma(\lambda))\coloneqq\Pr[\mathsf{Exp}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}}(\lambda,\gamma(\lambda))=1]\leq{\mathsf{negl}}(\lambda).

If 𝒜\mathpzc{A} can send only the challenge query ff^{\ast} during the experiment, we say that 𝖲𝖣𝖥𝖤\mathsf{SDFE} is challenge-only strong γ\gamma-anti-piracy secure.

If a pirate has 𝓈𝓀𝒻\mathpzc{sk}_{f^{\ast}}, it can easily compute f(x𝖼𝗈𝗂𝗇)f^{\ast}(x_{\mathsf{coin}}) and is a good FE distinguisher since f(x0)f(x1)f^{\ast}(x_{0})\neq f^{\ast}(x_{1}). The definition says either 𝒟1\mathpzc{D}_{1} or 𝒟2\mathpzc{D}_{2} do not have the power of 𝓈𝓀𝒻\mathpzc{sk}_{f^{\ast}}.

Other security notions for SDFE.

We can define CPA-style anti-piracy security for SDFE as SDE. We provide the CPA-style anti-piracy security for SDFE in Definition A.3. We can also define anti-piracy security with random challenge plaintexts for SDFE. However, if we allow adversaries to select a constant-valued function as ff^{\ast}, the security is trivially broken. It might be plausible to define security with random challenge plaintexts for functions with high min-entropy. It limits supported classes of functions. However, we focus on FE for all circuits in this work. We omit the definition of anti-piracy with random challenge plaintexts.

Implication to FE with secure key leasing.

Loosely speaking, SDFE implies FE with secure key leasing. However, there are subtle issues for this implication. Concretely, the implication holds if

  • we allow the deletion certificate to be a quantum state, and

  • restrict our attention to the setting where an adversary is given single decryption key that can be used to detect the challenge bit. We consider this setting for SDFE by default as we can see in Definition 7.30. However, we consider more powerful adversaries who can obtain multiple such decryption keys for secure key leasing as we can see in Definition 3.2. (Although we consider PKFE for SDFE and SKFE for secure key leasing in this work, we ignore the difference between public key and secret key for simplicity.)

Under these conditions, we can see the implication as follows. We require an adversary to send back the original quantum state encoding the decryption key as the deletion certificate. We can check the validity of this (quantum) certificate by estimating its success probability using the threshold implementation defined in Definition 7.7. Then, we see that an adversary who breaks the secure key leasing security of this construction clearly violates the single-decryptor security of the underlying scheme.

We can remove the second condition above if SDFE is also secure against adversaries who can obtain multiple decryption keys that can be used to detect the challenge bit. Such scheme is called collusion-resistant SDFE. Currently, we do not even have a construction of collusion-resistant SDE (that is, single decryptor PKE).

7.4 Single-Key Secure Single-Decryptor Functional Encryption

We use the following tools:

  • A single-decryptor encryption 𝖲𝖣𝖤=(𝖲𝖣𝖤.𝖲𝖾𝗍𝗎𝗉,𝖲𝖣𝖤.𝒬𝒦𝒢,𝖲𝖣𝖤.𝖤𝗇𝖼,𝖲𝖣𝖤.𝒟𝒸)\mathsf{SDE}=(\mathsf{SDE}.\mathsf{Setup},\mathsf{SDE}.\mathpzc{QKG},\mathsf{SDE}.\mathsf{Enc},\mathsf{SDE}.\mathpzc{Dec}).

  • An adaptively secure single-key PKFE scheme 𝖯𝖪𝖥𝖤=(𝖯𝖪𝖥𝖤.𝖲𝖾𝗍𝗎𝗉,𝖯𝖪𝖥𝖤.𝖪𝖦,𝖯𝖪𝖥𝖤.𝖤𝗇𝖼,𝖯𝖪𝖥𝖤.𝖣𝖾𝖼)\mathsf{PKFE}=(\mathsf{PKFE}.\mathsf{Setup},\mathsf{PKFE}.\mathsf{KG},\allowbreak\mathsf{PKFE}.\mathsf{Enc},\mathsf{PKFE}.\mathsf{Dec}).

The description of 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} is as follows.

𝟣𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ)\mathsf{1SDFE}.\mathsf{Setup}(1^{\lambda}):

  • Generate (𝖿𝖾.𝗉𝗄,𝖿𝖾.𝗆𝗌𝗄)𝖯𝖪𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{fe}.\mathsf{pk},\mathsf{fe}.\mathsf{msk})\leftarrow\mathsf{PKFE}.\mathsf{Setup}(1^{\lambda}).

  • Generate (𝗌𝖽𝖾.𝗉𝗄,𝗌𝖽𝖾.𝖽𝗄)𝖲𝖣𝖤.𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{sde}.\mathsf{pk},\mathsf{sde}.\mathsf{dk})\leftarrow\mathsf{SDE}.\mathsf{Setup}(1^{\lambda}).

  • Output 𝗉𝗄(𝖿𝖾.𝗉𝗄,𝗌𝖽𝖾.𝗉𝗄)\mathsf{pk}\coloneqq(\mathsf{fe}.\mathsf{pk},\mathsf{sde}.\mathsf{pk}) and 𝗆𝗌𝗄(𝖿𝖾.𝗆𝗌𝗄,𝗌𝖽𝖾.𝖽𝗄)\mathsf{msk}\coloneqq(\mathsf{fe}.\mathsf{msk},\mathsf{sde}.\mathsf{dk}).

𝟣𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄,𝒻)\mathsf{1SDFE}.\mathpzc{QKG}(\mathsf{msk},f):

  • Parse 𝗆𝗌𝗄=(𝖿𝖾.𝗆𝗌𝗄,𝗌𝖽𝖾.𝖽𝗄)\mathsf{msk}=(\mathsf{fe}.\mathsf{msk},\mathsf{sde}.\mathsf{dk}).

  • Generate 𝖿𝖾.𝗌𝗄f𝖯𝖪𝖥𝖤.𝖪𝖦(𝗆𝗌𝗄,f)\mathsf{fe}.\mathsf{sk}_{f}\leftarrow\mathsf{PKFE}.\mathsf{KG}(\mathsf{msk},f).

  • Generate 𝗌𝖽𝖾.𝒹𝓀𝖲𝖣𝖤.𝒬𝒦𝒢(𝗌𝖽𝖾.𝖽𝗄)\mathsf{sde}.\mathpzc{dk}\leftarrow\mathsf{SDE}.\mathpzc{QKG}(\mathsf{sde}.\mathsf{dk}).

  • Output 𝓈𝓀𝒻(𝖿𝖾.𝗌𝗄𝒻,𝗌𝖽𝖾.𝒹𝓀)\mathpzc{sk}_{f}\coloneqq(\mathsf{fe}.\mathsf{sk}_{f},\mathsf{sde}.\mathpzc{dk}).

𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄,x)\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk},x):

  • Parse 𝗉𝗄=(𝖿𝖾.𝗉𝗄,𝗌𝖽𝖾.𝗉𝗄)\mathsf{pk}=(\mathsf{fe}.\mathsf{pk},\mathsf{sde}.\mathsf{pk}).

  • Generate 𝖿𝖾.𝖼𝗍x𝖯𝖪𝖥𝖤.𝖤𝗇𝖼(𝖿𝖾.𝗉𝗄,x)\mathsf{fe}.\mathsf{ct}_{x}\leftarrow\mathsf{PKFE}.\mathsf{Enc}(\mathsf{fe}.\mathsf{pk},x).

  • Generate 𝗌𝖽𝖾.𝖼𝗍𝖲𝖣𝖤.𝖤𝗇𝖼(𝗌𝖽𝖾.𝗉𝗄,𝖿𝖾.𝖼𝗍x)\mathsf{sde}.\mathsf{ct}\leftarrow\mathsf{SDE}.\mathsf{Enc}(\mathsf{sde}.\mathsf{pk},\mathsf{fe}.\mathsf{ct}_{x}).

  • Output 𝖼𝗍𝗌𝖽𝖾.𝖼𝗍\mathsf{ct}\coloneqq\mathsf{sde}.\mathsf{ct}.

𝟣𝖲𝖣𝖥𝖤.𝒟𝒸(𝓈𝓀𝒻,𝖼𝗍)\mathsf{1SDFE}.\mathpzc{Dec}(\mathpzc{sk}_{f},\mathsf{ct}):

  • Parse 𝓈𝓀𝒻=(𝖿𝖾.𝗌𝗄𝒻,𝗌𝖽𝖾.𝒹𝓀)\mathpzc{sk}_{f}=(\mathsf{fe}.\mathsf{sk}_{f},\mathsf{sde}.\mathpzc{dk}) and 𝖼𝗍=𝗌𝖽𝖾.𝖼𝗍\mathsf{ct}=\mathsf{sde}.\mathsf{ct}.

  • Compute 𝖿𝖾.𝖼𝗍x𝖲𝖣𝖤.𝒟𝒸(𝗌𝖽𝖾.𝒹𝓀,𝗌𝖽𝖾.𝖼𝗍)\mathsf{fe}.\mathsf{ct}_{x}^{\prime}\leftarrow\mathsf{SDE}.\mathpzc{Dec}(\mathsf{sde}.\mathpzc{dk},\mathsf{sde}.\mathsf{ct}).

  • Output y𝖯𝖪𝖥𝖤.𝖣𝖾𝖼(𝖿𝖾.𝖼𝗍x)y\leftarrow\mathsf{PKFE}.\mathsf{Dec}(\mathsf{fe}.\mathsf{ct}_{x}^{\prime}).

Theorem 7.31.

If 𝖯𝖪𝖥𝖤\mathsf{PKFE} is adaptively single-key indistinguishability-secure, 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} is adaptively single-key secure.

Proof.

Suppose that 𝖠𝖽𝗏𝟣𝖲𝖣𝖥𝖤,𝒜𝖺𝖽𝖺-𝗂𝗇𝖽(λ)\mathsf{Adv}_{\mathsf{1SDFE},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{ind}}(\lambda) is non-negligible for a contradiction. We construct a QPT algorithm \mathpzc{B} for the adaptive single-key security of 𝖯𝖪𝖥𝖤\mathsf{PKFE} by using the adversary 𝒜\mathpzc{A} of the adaptive single-key security game of 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} as follows.

  1. 1.

    \mathpzc{B} receives 𝖿𝖾.𝗉𝗄\mathsf{fe}.\mathsf{pk} from its challenger, generates (𝗌𝖽𝖾.𝗉𝗄,𝗌𝖽𝖾.𝖽𝗄)𝖲𝖣𝖤.𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{sde}.\mathsf{pk},\mathsf{sde}.\mathsf{dk})\leftarrow\mathsf{SDE}.\mathsf{Setup}(1^{\lambda}), and sends 𝗉𝗄(𝖿𝖾.𝗉𝗄,𝗌𝖽𝖾.𝗉𝗄)\mathsf{pk}\coloneqq(\mathsf{fe}.\mathsf{pk},\mathsf{sde}.\mathsf{pk}) to 𝒜\mathpzc{A}.

  2. 2.

    When 𝒜\mathpzc{A} sends a key query ff, \mathpzc{B} sends it to its challenger, receives 𝖿𝖾.𝗌𝗄f𝖯𝖪𝖥𝖤.𝖪𝖦(𝖿𝖾.𝗆𝗌𝗄,f)\mathsf{fe}.\mathsf{sk}_{f}\leftarrow\mathsf{PKFE}.\mathsf{KG}(\mathsf{fe}.\mathsf{msk},f), computes 𝗌𝖽𝖾.𝒹𝓀𝖲𝖣𝖤.𝒬𝒦𝒢(𝗌𝖽𝖾.𝖽𝗄)\mathsf{sde}.\mathpzc{dk}\leftarrow\mathsf{SDE}.\mathpzc{QKG}(\mathsf{sde}.\mathsf{dk}), and passes 𝓈𝓀𝒻(𝖿𝖾.𝗌𝗄𝒻,𝗌𝖽𝖾.𝒹𝓀)\mathpzc{sk}_{f}\coloneqq(\mathsf{fe}.\mathsf{sk}_{f},\mathsf{sde}.\mathpzc{dk}) to 𝒜\mathpzc{A}.

  3. 3.

    When 𝒜\mathpzc{A} sends a pair (x0,x1)(x_{0},x_{1}), \mathpzc{B} passes (x0,x1)(x_{0},x_{1}) to its challenger and receives 𝖿𝖾.𝖼𝗍𝖯𝖪𝖥𝖤.𝖤𝗇𝖼(𝖿𝖾.𝗉𝗄,x𝖼𝗈𝗂𝗇)\mathsf{fe}.\mathsf{ct}^{\ast}\leftarrow\mathsf{PKFE}.\mathsf{Enc}(\mathsf{fe}.\mathsf{pk},x_{\mathsf{coin}}). \mathpzc{B} generates 𝗌𝖽𝖾.𝖼𝗍𝖲𝖣𝖤.𝖤𝗇𝖼(𝗌𝖽𝖾.𝗉𝗄,𝖿𝖾.𝖼𝗍)\mathsf{sde}.\mathsf{ct}\leftarrow\mathsf{SDE}.\mathsf{Enc}(\mathsf{sde}.\mathsf{pk},\mathsf{fe}.\mathsf{ct}^{\ast}) and passes 𝗌𝖽𝖾.𝖼𝗍\mathsf{sde}.\mathsf{ct} to 𝒜\mathpzc{A}.

  4. 4.

    If f(x0)f(x1)f(x_{0})\neq f(x_{1}), \mathpzc{B} aborts. Otherwise, go to the next step.

  5. 5.

    \mathpzc{B} outputs whatever 𝒜\mathpzc{A} outputs.

It is easy to see that \mathpzc{B} perfectly simulates 𝖤𝗑𝗉𝟣𝖲𝖣𝖥𝖤,𝒜𝖺𝖽𝖺-𝗂𝗇𝖽(λ)\mathsf{Exp}_{\mathsf{1SDFE},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{ind}}(\lambda) since 𝒜\mathpzc{A} must send (f,x0,x1)(f,x_{0},x_{1}) such that f(x0)=f(x1)f(x_{0})=f(x_{1}) due to the condition of 𝖤𝗑𝗉𝟣𝖲𝖣𝖥𝖤,𝒜𝖺𝖽𝖺-𝗂𝗇𝖽(λ)\mathsf{Exp}_{\mathsf{1SDFE},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{ind}}(\lambda). Thus, \mathpzc{B} breaks the adaptive single-key security of 𝖯𝖪𝖥𝖤\mathsf{PKFE} by using the distinguishing power of 𝒜\mathpzc{A}. This is a contradiction and we finished the proof.   

Theorem 7.32.

If 𝖲𝖣𝖤\mathsf{SDE} is strong γ/4\gamma/4-anti-piracy secure for randomized function family, 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} is challenge-only strong γ\gamma-anti-piracy secure.

Proof.

We recall the original game.

𝖧𝗒𝖻0\mathsf{Hyb}_{0}:

This is the same as 𝖤𝗑𝗉𝒜,𝟣𝖲𝖣𝖥𝖤𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒(λ,γ(λ))\mathsf{Exp}_{\mathpzc{A},\mathsf{1SDFE}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}}(\lambda,\gamma(\lambda)). The detailed description is as follows.

  1. 1.

    Compute (𝖿𝖾.𝗉𝗄,𝖿𝖾.𝗆𝗌𝗄)𝖯𝖪𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{fe}.\mathsf{pk},\mathsf{fe}.\mathsf{msk})\leftarrow\mathsf{PKFE}.\mathsf{Setup}(1^{\lambda}) and (𝗌𝖽𝖾.𝗉𝗄,𝗌𝖽𝖾.𝖽𝗄)𝖲𝖣𝖤.𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{sde}.\mathsf{pk},\mathsf{sde}.\mathsf{dk})\leftarrow\mathsf{SDE}.\mathsf{Setup}(1^{\lambda}). Set 𝗉𝗄(𝖿𝖾.𝗉𝗄,𝗌𝖽𝖾.𝗉𝗄)\mathsf{pk}\coloneqq(\mathsf{fe}.\mathsf{pk},\mathsf{sde}.\mathsf{pk}) and 𝗆𝗌𝗄(𝖿𝖾.𝗆𝗌𝗄,𝗌𝖽𝖾.𝖽𝗄)\mathsf{msk}\coloneqq(\mathsf{fe}.\mathsf{msk},\mathsf{sde}.\mathsf{dk}).

  2. 2.

    Compute 𝖿𝖾.𝗌𝗄f𝖯𝖪𝖥𝖤.𝖪𝖦(𝖿𝖾.𝗆𝗌𝗄,f)\mathsf{fe}.\mathsf{sk}_{f^{\ast}}\leftarrow\mathsf{PKFE}.\mathsf{KG}(\mathsf{fe}.\mathsf{msk},f^{\ast}) and 𝗌𝖽𝖾.𝒹𝓀𝖲𝖣𝖤.𝒬𝒦𝒢(𝗌𝖽𝖾.𝖽𝗄)\mathsf{sde}.\mathpzc{dk}\leftarrow\mathsf{SDE}.\mathpzc{QKG}(\mathsf{sde}.\mathsf{dk}), and send 𝓈𝓀𝒻(𝖿𝖾.𝗌𝗄𝒻,𝗌𝖽𝖾.𝒹𝓀)\mathpzc{sk}_{f^{\ast}}\coloneqq(\mathsf{fe}.\mathsf{sk}_{f^{\ast}},\mathsf{sde}.\mathpzc{dk}) to 𝒜\mathpzc{A}.

  3. 3.

    Receive (x0,x1)(x_{0},x_{1}), 𝒟1=(𝓆[𝖱1],U1)\mathpzc{D}_{1}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],\boldsymbol{U}_{1}), and 𝒟2=(𝓆[𝖱2],U2)\mathpzc{D}_{2}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],\boldsymbol{U}_{2}), where f(x0)f(x1)f^{\ast}(x_{0})\neq f^{\ast}(x_{1}).

  4. 4.

    For i{1,2}i\in\{1,2\}, let 𝒫i,D\mathcal{P}_{i,D} be the following mixture of projective measurements acting on some quantum state 𝓆\mathpzc{q}^{\prime}:

    • Sample a uniform 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\}. Compute 𝖿𝖾.𝖼𝗍𝖯𝖪𝖥𝖤.𝖤𝗇𝖼(𝖿𝖾.𝗉𝗄,x𝖼𝗈𝗂𝗇)\mathsf{fe}.\mathsf{ct}\leftarrow\mathsf{PKFE}.\mathsf{Enc}(\mathsf{fe}.\mathsf{pk},x_{\mathsf{coin}}) and 𝗌𝖽𝖾.𝖼𝗍𝖲𝖣𝖤.𝖤𝗇𝖼(𝗌𝖽𝖾.𝗉𝗄,𝖿𝖾.𝖼𝗍)\mathsf{sde}.\mathsf{ct}\leftarrow\mathsf{SDE}.\mathsf{Enc}(\mathsf{sde}.\mathsf{pk},\mathsf{fe}.\mathsf{ct}) and set 𝖼𝗍𝗌𝖽𝖾.𝖼𝗍\mathsf{ct}\coloneqq\mathsf{sde}.\mathsf{ct}.

    • Run the quantum decryptor (𝓆,U𝒾)(\mathpzc{q}^{\prime},\boldsymbol{U}_{i}) on input 𝖼𝗍\mathsf{ct}. If the outcome is 𝖼𝗈𝗂𝗇\mathsf{coin}, output 11. Otherwise, output 0.

    Let DD be the distribution over pairs (𝖼𝗈𝗂𝗇,𝖼𝗍)(\mathsf{coin},\mathsf{ct}) defined in the first item above, and let i={𝑬(𝖼𝗈𝗂𝗇,𝖼𝗍)i}𝖼𝗈𝗂𝗇,𝖼𝗍\mathcal{E}_{i}=\{\boldsymbol{E}^{i}_{(\mathsf{coin},\mathsf{ct})}\}_{\mathsf{coin},\mathsf{ct}} be a collection of projective measurements where 𝑬(𝖼𝗈𝗂𝗇,𝖼𝗍)i\boldsymbol{E}^{i}_{(\mathsf{coin},\mathsf{ct})} is the projective measurement described in the second item above. 𝒫i,D\mathcal{P}_{i,D} is the mixture of projective measurements associated to DD and i\mathcal{E}_{i}.

  5. 5.

    Run 𝒯12+γ(𝒫𝒾,𝒟)\mathpzc{TI}_{\frac{1}{2}+\gamma}(\mathcal{P}_{i,D}) for i{1,2}i\in\{1,2\} on quantum decryptor 𝒟1=(𝓆[𝖱1],U1)\mathpzc{D}_{1}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],\boldsymbol{U}_{1}) and 𝒟2=(𝓆[𝖱2],U2)\mathpzc{D}_{2}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],\boldsymbol{U}_{2}). Output 11 if both tests pass, otherwise output 0.

We prove the following.

Lemma 7.33.

If 𝖲𝖣𝖤\mathsf{SDE} is strong γ\gamma-anti-piracy secure with randomized function family {𝖯𝖪𝖥𝖤.𝖤𝗇𝖼(𝖿𝖾.𝗉𝗄,;)}λ\{\mathsf{PKFE}.\mathsf{Enc}(\mathsf{fe}.\mathsf{pk},\cdot;\cdot)\}_{\lambda}, it holds that 𝖠𝖽𝗏𝖲𝖣𝖥𝖤,𝒜𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒(λ,γ(λ))𝗇𝖾𝗀𝗅(λ)\mathsf{Adv}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}}(\lambda,\gamma(\lambda))\leq{\mathsf{negl}}(\lambda).

Proof of Lemma 7.33.

Suppose that 𝖠𝖽𝗏𝖲𝖣𝖥𝖤,𝒜𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒(λ,γ(λ))\mathsf{Adv}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}}(\lambda,\gamma(\lambda)) is non-negligible for a contradiction. We construct a QPT algorithm \mathpzc{B} for the strong γ\gamma-anti-piracy game with randomized function {𝖯𝖪𝖥𝖤.𝖤𝗇𝖼(𝖿𝖾.𝗉𝗄,;)}λ\{\mathsf{PKFE}.\mathsf{Enc}(\mathsf{fe}.\mathsf{pk},\cdot;\cdot)\}_{\lambda} of 𝖲𝖣𝖤\mathsf{SDE} by using the adversary 𝒜\mathpzc{A} of the strong γ\gamma-anti-piracy game of 𝖲𝖣𝖥𝖤\mathsf{SDFE} as follows.

  1. 1.

    \mathpzc{B} receives 𝗌𝖽𝖾.𝗉𝗄\mathsf{sde}.\mathsf{pk} and 𝗌𝖽𝖾.𝒹𝓀\mathsf{sde}.\mathpzc{dk} from its challenger.

  2. 2.

    \mathpzc{B} generates (𝖿𝖾.𝗉𝗄,𝖿𝖾.𝗆𝗌𝗄)𝖯𝖪𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{fe}.\mathsf{pk},\mathsf{fe}.\mathsf{msk})\leftarrow\mathsf{PKFE}.\mathsf{Setup}(1^{\lambda}), sets 𝗉𝗄(𝖿𝖾.𝗉𝗄,𝗌𝖽𝖾.𝗉𝗄)\mathsf{pk}\coloneqq(\mathsf{fe}.\mathsf{pk},\mathsf{sde}.\mathsf{pk}), and sends it to 𝒜\mathpzc{A}.

  3. 3.

    When 𝒜\mathpzc{A} sends the challenge query ff^{\ast}, \mathpzc{B} generates 𝖿𝖾.𝗌𝗄f𝖯𝖪𝖥𝖤.𝖪𝖦(𝖿𝖾.𝗆𝗌𝗄,f)\mathsf{fe}.\mathsf{sk}_{f^{\ast}}\leftarrow\mathsf{PKFE}.\mathsf{KG}(\mathsf{fe}.\mathsf{msk},f^{\ast}), sets 𝓈𝓀𝒻(𝖿𝖾.𝗌𝗄𝒻,𝗌𝖽𝖾.𝒹𝓀)\mathpzc{sk}_{f^{\ast}}\coloneqq(\mathsf{fe}.\mathsf{sk}_{f^{\ast}},\mathsf{sde}.\mathpzc{dk}), and sends 𝓈𝓀𝒻\mathpzc{sk}_{f^{\ast}} to 𝒜\mathpzc{A}.

  4. 4.

    At some point, \mathpzc{B} receives (x0,x1)(x_{0},x_{1}) and two (possibly entangled) quantum decryptors 𝒟1=(𝓆[𝖱1],U1)\mathpzc{D}_{1}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],\boldsymbol{U}_{1}) and 𝒟2=(𝓆[𝖱2],U2)\mathpzc{D}_{2}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],\boldsymbol{U}_{2}), where f(x0)f(x1)f^{*}(x_{0})\neq f^{*}(x_{1}), from 𝒜\mathpzc{A}.

  5. 5.

    \mathpzc{B} sets quantum decryptors 𝒟1\mathpzc{D}_{1}^{\ast} and 𝒟2\mathpzc{D}_{2}^{\ast} as follows. \mathpzc{B} sets 𝒟1(𝓆[𝖱1],U1)\mathpzc{D}_{1}^{\ast}\coloneqq(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],\boldsymbol{U}_{1}) and 𝒟2(𝓆[𝖱2],U2)\mathpzc{D}_{2}^{\ast}\coloneqq(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],\boldsymbol{U}_{2}). \mathpzc{B} sets a randomized function g(;)𝖯𝖪𝖥𝖤.𝖤𝗇𝖼(𝖿𝖾.𝗉𝗄,;)g(\cdot;\cdot)\coloneqq\mathsf{PKFE}.\mathsf{Enc}(\mathsf{fe}.\mathsf{pk},\cdot;\cdot) and sends (x0,x1,g))(x_{0},x_{1},g)) and 𝒟1=(𝓆[𝖱1],U1)\mathpzc{D}_{1}^{\ast}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],\boldsymbol{U}_{1}) and 𝒟2=(𝓆[𝖱2],U2)\mathpzc{D}_{2}^{\ast}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],\boldsymbol{U}_{2}) to its challenger.

Recall that, for testing quantum decryptors 𝒟1\mathpzc{D}_{1} and 𝒟2\mathpzc{D}_{2} in 𝖠𝖽𝗏𝖲𝖣𝖥𝖤,𝒜𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒(λ,γ(λ))\mathsf{Adv}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}}(\lambda,\gamma(\lambda)), we use the following: For i{1,2}i\in\{1,2\}, let 𝒫i,D\mathcal{P}_{i,D} be the following mixture of projective measurements acting on some quantum state 𝓆\mathpzc{q}^{\prime}:

  • Sample a uniform 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\}. Compute 𝖿𝖾.𝖼𝗍𝖯𝖪𝖥𝖤.𝖤𝗇𝖼(𝖿𝖾.𝗉𝗄,x𝖼𝗈𝗂𝗇)\mathsf{fe}.\mathsf{ct}\leftarrow\mathsf{PKFE}.\mathsf{Enc}(\mathsf{fe}.\mathsf{pk},x_{\mathsf{coin}}) and 𝗌𝖽𝖾.𝖼𝗍𝖲𝖣𝖤.𝖤𝗇𝖼(𝗌𝖽𝖾.𝗉𝗄,𝖿𝖾.𝖼𝗍)\mathsf{sde}.\mathsf{ct}\leftarrow\mathsf{SDE}.\mathsf{Enc}(\mathsf{sde}.\mathsf{pk},\mathsf{fe}.\mathsf{ct}) and set 𝖼𝗍𝗌𝖽𝖾.𝖼𝗍\mathsf{ct}\coloneqq\mathsf{sde}.\mathsf{ct}.

  • Run the quantum decryptor (𝓆,U𝒾)(\mathpzc{q}^{\prime},\boldsymbol{U}_{i}) on input 𝖼𝗍\mathsf{ct}. If the outcome is 𝖼𝗈𝗂𝗇\mathsf{coin}, output 11. Otherwise, output 0.

The challenger of 𝖲𝖣𝖤\mathsf{SDE} runs the test by using the following. Let 𝒫i,D\mathcal{P}_{i,D^{\prime}} be the following mixture of projective measurements acting on some quantum state 𝓆𝖲𝖣𝖤\mathpzc{q}_{\mathsf{SDE}}:

  • Sample a uniformly random 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\} and rr\leftarrow\mathcal{R}, and compute m𝖼𝗈𝗂𝗇𝖯𝖪𝖥𝖤.𝖤𝗇𝖼(𝖿𝖾.𝗉𝗄,x𝖼𝗈𝗂𝗇;r)m_{\mathsf{coin}}^{\prime}\coloneqq\mathsf{PKFE}.\mathsf{Enc}(\mathsf{fe}.\mathsf{pk},x_{\mathsf{coin}};r). Note that \mathpzc{B} sets g(,)𝖯𝖪𝖥𝖤.𝖤𝗇𝖼(𝖿𝖾.𝗉𝗄,;)g(\cdot,\cdot)\coloneqq\mathsf{PKFE}.\mathsf{Enc}(\mathsf{fe}.\mathsf{pk},\cdot;\cdot). Then, compute 𝖼𝗍𝖲𝖣𝖤.𝖤𝗇𝖼(𝗌𝖽𝖾.𝗉𝗄,m𝖼𝗈𝗂𝗇)\mathsf{ct}\leftarrow\mathsf{SDE}.\mathsf{Enc}(\mathsf{sde}.\mathsf{pk},m_{\mathsf{coin}}^{\prime}).

  • Run 𝖼𝗈𝗂𝗇𝒟(𝖼𝗍)\mathsf{coin}^{\prime}\leftarrow\mathpzc{D}(\mathsf{ct}). If 𝖼𝗈𝗂𝗇=𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}=\mathsf{coin}, output 11, otherwise output 0.

The distribution is the same as DD, which \mathpzc{B} simulates.

We assumed that 𝖠𝖽𝗏𝖲𝖣𝖥𝖤,𝒜𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒(λ,γ(λ))\mathsf{Adv}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}}(\lambda,\gamma(\lambda)) is non-negligible at the beginning of this proof. That is, applying 𝒯12+γ(𝒫𝒾,𝒟)\mathpzc{TI}_{\frac{1}{2}+\gamma}(\mathcal{P}_{i,D}) on 𝓆[𝖱𝒾]\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}] results in two outcomes 11 with non-negligible probability:

Tr[𝒯12+γ(𝒫1,𝒟)𝒯12+γ(𝒫2,𝒟)𝓆]>𝗇𝖾𝗀𝗅(λ),\displaystyle\Tr[\mathpzc{TI}_{\frac{1}{2}+\gamma}(\mathcal{P}_{1,D})\otimes\mathpzc{TI}_{\frac{1}{2}+\gamma}(\mathcal{P}_{2,D})\mathpzc{q}]>{\mathsf{negl}}(\lambda), (41)

where μ>𝗇𝖾𝗀𝗅(λ)\mu>{\mathsf{negl}}(\lambda) means μ\mu is non-negligible. This means that 𝓆[𝖱𝒾]\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}] is a γ\gamma-good distinguisher with respect to ciphertexts generated according to DD. It is easy to see that (𝒟1,𝒟2)(\mathpzc{D}_{1}^{\ast},\mathpzc{D}_{2}^{\ast}) is a γ\gamma-good distinguisher for randomized function 𝖯𝖪𝖥𝖤.𝖤𝗇𝖼(𝖿𝖾.𝗉𝗄,;)\mathsf{PKFE}.\mathsf{Enc}(\mathsf{fe}.\mathsf{pk},\cdot;\cdot) since DD^{\prime} and DD are the same distribution. Thus, if 𝒜\mathpzc{A} outputs γ\gamma-good distinguisher, \mathpzc{B} can also outputs γ\gamma-good distinguisher for randomized function 𝖯𝖪𝖥𝖤.𝖤𝗇𝖼(𝖿𝖾.𝗉𝗄,;)\mathsf{PKFE}.\mathsf{Enc}(\mathsf{fe}.\mathsf{pk},\cdot;\cdot). This completes the proof of Lemma 7.33.   

By Lemma 7.33, we complete the proof of Theorem 7.32.   

We obtain the following corollary from Theorems 7.26, 7.31 and 7.32.

Corollary 7.34.

Assuming the existence of sub-exponentially secure IO for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} and OWFs, and the hardness of QLWE, there exists an SDFE scheme for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} that satisfies adaptive single-key security and challenge-only strong γ\gamma-anti-piracy security for any inverse polynomial γ\gamma.

Remark 7.35 (On approximation version of threshold implementation).

We do not need to use approximate version of 𝒯\mathpzc{TI} that runs in polynomial time (denoted by 𝒜𝒯\mathpzc{ATI} by previous works [ALL+21, CLLZ21]) because we do not extract information from pirate decryptors 𝒟1\mathpzc{D}_{1} and 𝒟2\mathpzc{D}_{2}. We use the decision bits output by them for breaking the security of cryptographic primitives in security reductions. This is the same for the construction in Section 7.5.

7.5 Collusion-Resistant Single-Decryptor Functional Encryption

Construction 7.36.

We use the following tools:

  • A single-key SDFE 𝟣𝖲𝖣𝖥𝖤=(𝟣𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉,𝟣𝖲𝖣𝖥𝖤.𝖪𝖦,𝟣𝖲𝖣𝖥𝖤.𝒬𝒦𝒢,𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼,𝟣𝖲𝖣𝖥𝖤.𝒟𝒸)\mathsf{1SDFE}=(\mathsf{1SDFE}.\mathsf{Setup},\mathsf{1SDFE}.\mathsf{KG},\mathsf{1SDFE}.\mathpzc{QKG},\mathsf{1SDFE}.\mathsf{Enc},\allowbreak\mathsf{1SDFE}.\mathpzc{Dec}).

  • An IO i𝒪i\mathcal{O}.

  • A puncturable PRF 𝖯𝖯𝖱𝖥=(𝖯𝖱𝖥.𝖦𝖾𝗇,𝖥,𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾)\mathsf{PPRF}=(\mathsf{PRF}.\mathsf{Gen},\mathsf{F},\mathsf{Puncture}), where 𝖥:{0,1}λ×{0,1}𝖲𝖾𝗍𝗎𝗉\mathsf{F}:\{0,1\}^{\lambda}\times\{0,1\}^{\ell}\rightarrow\mathcal{R}_{\mathsf{Setup}} and 𝖲𝖾𝗍𝗎𝗉\mathcal{R}_{\mathsf{Setup}} is the randomness space of 𝟣𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉\mathsf{1SDFE}.\mathsf{Setup}.

  • A puncturable PRF 𝖯𝖯𝖱𝖥=(𝖯𝖱𝖥.𝖦𝖾𝗇,𝖥,𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾)\mathsf{PPRF}^{\prime}=(\mathsf{PRF}.\mathsf{Gen}^{\prime},\mathsf{F}^{\prime},\mathsf{Puncture}^{\prime}), where 𝖥:{0,1}λ×{0,1}𝖤𝗇𝖼\mathsf{F}^{\prime}:\{0,1\}^{\lambda}\times\{0,1\}^{\ell}\rightarrow\mathcal{R}_{\mathsf{Enc}} and 𝖤𝗇𝖼\mathcal{R}_{\mathsf{Enc}} is the randomness space of 𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼\mathsf{1SDFE}.\mathsf{Enc}.

  • A (standard) PRF 𝖥(1):{0,1}λ×𝒞𝟣𝖲𝖣𝖥𝖤𝖯𝖱𝖥.𝖦𝖾𝗇\mathsf{F}^{(1)}:\{0,1\}^{\lambda}\times\mathcal{C}_{\mathsf{1SDFE}}\rightarrow\mathcal{R}_{\mathsf{PRF}.\mathsf{Gen}^{\prime}}, 𝒞𝟣𝖲𝖣𝖥𝖤\mathcal{C}_{\mathsf{1SDFE}} is the ciphertext space of 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} and 𝖯𝖱𝖥.𝖦𝖾𝗇\mathcal{R}_{\mathsf{PRF}.\mathsf{Gen}^{\prime}} is the randomness space of 𝖯𝖱𝖥.𝖦𝖾𝗇\mathsf{PRF}.\mathsf{Gen}^{\prime}.

  • A (standard) PRF 𝖥(2):{0,1}λ×𝒞𝟣𝖲𝖣𝖥𝖤i𝒪\mathsf{F}^{(2)}:\{0,1\}^{\lambda}\times\mathcal{C}_{\mathsf{1SDFE}}\rightarrow\mathcal{R}_{i\mathcal{O}}, 𝒞𝟣𝖲𝖣𝖥𝖤\mathcal{C}_{\mathsf{1SDFE}} is the ciphertext space of 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} and i𝒪\mathcal{R}_{i\mathcal{O}} is the randomness space of i𝒪i\mathcal{O}.

Note that we use 𝖥(1)\mathsf{F}^{(1)} and 𝖥(2)\mathsf{F}^{(2)} only in security proofs.

𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ)\mathsf{SDFE}.\mathsf{Setup}(1^{\lambda}):

  • Generate 𝖪𝖯𝖱𝖥.𝖦𝖾𝗇(1λ)\mathsf{K}\leftarrow\mathsf{PRF}.\mathsf{Gen}(1^{\lambda}) and 𝖲𝟣𝖿𝖾[𝖪]\mathsf{S}_{\mathsf{1fe}}[\mathsf{K}] defined in Figure 2.

  • Return (𝗉𝗄^,𝗆𝗌𝗄^)(i𝒪1(𝖲𝟣𝖿𝖾),𝖪)(\widehat{\mathsf{pk}},\widehat{\mathsf{msk}})\coloneqq(i\mathcal{O}_{1}(\mathsf{S}_{\mathsf{1fe}}),\mathsf{K}).

𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄^,𝒻)\mathsf{SDFE}.\mathpzc{QKG}(\widehat{\mathsf{msk}},f):

  • Parse 𝖪=𝗆𝗌𝗄^\mathsf{K}=\widehat{\mathsf{msk}} and choose τ{0,1}\tau\leftarrow\{0,1\}^{\ell}.

  • Compute rτ𝖥𝖪(τ)r_{\tau}\leftarrow\mathsf{F}_{\mathsf{K}}(\tau) and (𝗆𝗌𝗄τ,𝗉𝗄τ)𝟣𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ;rτ)(\mathsf{msk}_{\tau},\mathsf{pk}_{\tau})\leftarrow\mathsf{1SDFE}.\mathsf{Setup}(1^{\lambda};r_{\tau}).

  • Generate 𝓈𝓀𝒻,τ𝟣𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄τ,𝒻)\mathpzc{sk}_{f,\tau}\leftarrow\mathsf{1SDFE}.\mathpzc{QKG}(\mathsf{msk}_{\tau},f).

  • Output 𝓈𝓀^f,τ(τ,𝓈𝓀𝒻,τ)\widehat{\mathpzc{sk}}_{f,\tau}\coloneqq(\tau,\mathpzc{sk}_{f,\tau}).

𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄^,x)\mathsf{SDFE}.\mathsf{Enc}(\widehat{\mathsf{pk}},x):

  • Generate 𝖪𝖯𝖱𝖥.𝖦𝖾𝗇(1λ)\mathsf{K}^{\prime}\leftarrow\mathsf{PRF}.\mathsf{Gen}^{\prime}(1^{\lambda}) and 𝖤𝟣𝖿𝖾[𝗉𝗄^,𝖪,x]\mathsf{E}_{\mathsf{1fe}}[\widehat{\mathsf{pk}},\mathsf{K}^{\prime},x] defined in Figure 3.

  • Return 𝖼𝗍^i𝒪2(𝖤𝟣𝖿𝖾[𝗉𝗄^,𝖪,x])\widehat{\mathsf{ct}}\leftarrow i\mathcal{O}_{2}(\mathsf{E}_{\mathsf{1fe}}[\widehat{\mathsf{pk}},\mathsf{K}^{\prime},x]).

𝖲𝖣𝖥𝖤.𝒟𝒸(𝓈𝓀^𝒻,𝖼𝗍^)\mathsf{SDFE}.\mathpzc{Dec}(\widehat{\mathpzc{sk}}_{f},\widehat{\mathsf{ct}}):

  • Parse (τ,𝓈𝓀𝒻,τ)=𝓈𝓀^𝒻(\tau,\mathpzc{sk}_{f,\tau})=\widehat{\mathpzc{sk}}_{f}.

  • Evaluate the circuit 𝖼𝗍^\widehat{\mathsf{ct}} on input τ\tau, that is 𝖼𝗍τ𝖼𝗍^(τ)\mathsf{ct}_{\tau}\leftarrow\widehat{\mathsf{ct}}(\tau).

  • Return y𝟣𝖲𝖣𝖥𝖤.𝒟𝒸(𝓈𝓀𝒻,τ,𝖼𝗍τ)y\leftarrow\mathsf{1SDFE}.\mathpzc{Dec}(\mathpzc{sk}_{f,\tau},\mathsf{ct}_{\tau}).

Setup Circuit 𝖲𝟣𝖿𝖾[𝖪](τ)\mathsf{S}_{\mathsf{1fe}}[\mathsf{K}](\tau) Hardwired: puncturable PRF key 𝖪\mathsf{K}. Input: tag τ{0,1}\tau\in\{0,1\}^{\ell}. Padding: circuit is padded to size 𝗉𝖺𝖽𝖲𝗉𝖺𝖽𝖲(λ,n,s,)\mathsf{pad}_{\mathsf{S}}\coloneqq\mathsf{pad}_{\mathsf{S}}(\lambda,n,s,\ell), which is determined in analysis. 1. Compute rτ𝖥𝖪(τ)r_{\tau}\leftarrow\mathsf{F}_{\mathsf{K}}(\tau). 2. Compute (𝗉𝗄τ,𝗆𝗌𝗄τ)𝟣𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ;rτ)(\mathsf{pk}_{\tau},\mathsf{msk}_{\tau})\leftarrow\mathsf{1SDFE}.\mathsf{Setup}(1^{\lambda};r_{\tau}) and output 𝗉𝗄τ\mathsf{pk}_{\tau}.

Figure 2: Description of 𝖲𝟣𝖿𝖾[𝖪]\mathsf{S}_{\mathsf{1fe}}[\mathsf{K}].

Encryption Circuit 𝖤𝟣𝖿𝖾[𝗉𝗄^,𝖪,x](τ)\mathsf{E}_{\mathsf{1fe}}[\widehat{\mathsf{pk}},\mathsf{K}^{\prime},x](\tau) Hardwired: circuit 𝗉𝗄^\widehat{\mathsf{pk}}, puncturable PRF key 𝖪\mathsf{K}^{\prime}, and message xx. Input: tag τ{0,1}\tau\in\{0,1\}^{\ell}. Padding: circuit is padded to size 𝗉𝖺𝖽𝖤𝗉𝖺𝖽𝖤(λ,n,s,)\mathsf{pad}_{\mathsf{E}}\coloneqq\mathsf{pad}_{\mathsf{E}}(\lambda,n,s,\ell), which is determined in analysis. 1. Evaluate the circuit 𝗉𝗄^\widehat{\mathsf{pk}} on input τ\tau, that is 𝗉𝗄τ𝗉𝗄^(τ)\mathsf{pk}_{\tau}\leftarrow\widehat{\mathsf{pk}}(\tau). 2. Compute rτ𝖥𝖪(τ)r_{\tau}^{\prime}\leftarrow\mathsf{F}^{\prime}_{\mathsf{K}^{\prime}}(\tau) and output 𝖼𝗍τ𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τ,x;rτ)\mathsf{ct}_{\tau}\leftarrow\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau},x;r^{\prime}_{\tau}).

Figure 3: Description of 𝖤𝟣𝖿𝖾[𝗉𝗄^,𝖪,x]\mathsf{E}_{\mathsf{1fe}}[\widehat{\mathsf{pk}},\mathsf{K}^{\prime},x].
Theorem 7.37.

If 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} is sub-exponentially adaptively single-key secure, i𝒪i\mathcal{O} is a sub-exponentially secure IO for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly}, and 𝖯𝖯𝖱𝖥\mathsf{PPRF} is a sub-exponentially secure PPRF, 𝖲𝖣𝖥𝖤\mathsf{SDFE} is adaptively secure.

Proof.

We define a sequence of hybrid games. For the hybrid games, we present some definitions. Let qq be the total number of key queries by 𝒜\mathpzc{A}. Note that qq could be any polynomial. When we start the adaptive security game, the adversary 𝒜\mathpzc{A} is fixed, and qq is also fixed. We choose tags τ1,,τq{0,1}\tau_{1},\ldots,\tau_{q}\leftarrow\{0,1\}^{\ell} for qq key queries at the beginning of the game. We can interpret \ell bit strings as integers and assume that there is no i,ji,j such that iji\neq j and τi=τj\tau_{i}=\tau_{j} without loss of generality.

𝖧𝗒𝖻0(𝖼𝗈𝗂𝗇)\mathsf{Hyb}_{0}(\mathsf{coin}):

This is the original adaptive security game.

  1. 1.

    The challenger generates (𝗉𝗄^,𝗆𝗌𝗄^)=(i𝒪1(𝖲𝟣𝖿𝖾),𝖪)𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ)(\widehat{\mathsf{pk}},\widehat{\mathsf{msk}})=(i\mathcal{O}_{1}(\mathsf{S}_{\mathsf{1fe}}),\mathsf{K})\leftarrow\mathsf{SDFE}.\mathsf{Setup}(1^{\lambda}) and sends 𝗉𝗄^\widehat{\mathsf{pk}} to 𝒜\mathpzc{A}.

  2. 2.

    𝒜\mathpzc{A} sends key queries fkf_{k} to the challenger and the challenger generates rτk𝖥𝖪(τk)r_{\tau_{k}}\leftarrow\mathsf{F}_{\mathsf{K}}(\tau_{k}) and (𝗉𝗄τk,𝗆𝗌𝗄τk)𝟣𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ;rτk)(\mathsf{pk}_{\tau_{k}},\mathsf{msk}_{\tau_{k}})\leftarrow\mathsf{1SDFE}.\mathsf{Setup}(1^{\lambda};r_{\tau_{k}}), and returns 𝓈𝓀^fk=(τk,𝓈𝓀𝒻𝓀,τ𝓀)\widehat{\mathpzc{sk}}_{f_{k}}=(\tau_{k},\mathpzc{sk}_{f_{k},\tau_{k}}) where 𝓈𝓀𝒻𝓀,τ𝓀𝟣𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄τ𝓀,𝒻𝓀)\mathpzc{sk}_{f_{k},\tau_{k}}\leftarrow\mathsf{1SDFE}.\mathpzc{QKG}(\mathsf{msk}_{\tau_{k}},f_{k}).

  3. 3.

    At some point 𝒜\mathpzc{A} sends a pair (x0,x1)(x_{0},x_{1}) to the challenger. If fi(x0)=fi(x1)f_{i}(x_{0})=f_{i}(x_{1}), the challenger generates 𝖪𝖯𝖱𝖥.𝖦𝖾𝗇(1λ)\mathsf{K}^{\prime}\leftarrow\mathsf{PRF}.\mathsf{Gen}^{\prime}(1^{\lambda}) and 𝖤𝟣𝖿𝖾[𝗉𝗄^,𝖪,x𝖼𝗈𝗂𝗇]\mathsf{E}_{\mathsf{1fe}}[\widehat{\mathsf{pk}},\mathsf{K}^{\prime},x_{\mathsf{coin}}] defined in Figure 3 and sends 𝖼𝗍^i𝒪2(𝖤𝟣𝖿𝖾[𝗉𝗄^,𝖪,x𝖼𝗈𝗂𝗇])\widehat{\mathsf{ct}}\leftarrow i\mathcal{O}_{2}(\mathsf{E}_{\mathsf{1fe}}[\widehat{\mathsf{pk}},\mathsf{K}^{\prime},x_{\mathsf{coin}}]) to 𝒜\mathpzc{A}.

  4. 4.

    Again, 𝒜\mathpzc{A} sends fkf_{k} to the challenger and the challenger returns 𝓈𝓀^fk𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄^,𝒻𝓀)\widehat{\mathpzc{sk}}_{f_{k}}\leftarrow\mathsf{SDFE}.\mathpzc{QKG}(\widehat{\mathsf{msk}},f_{k}) if fk(x0)=fk(x1)f_{k}(x_{0})=f_{k}(x_{1}).

  5. 5.

    When 𝒜\mathpzc{A} outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}, the game outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}.

Let i[2]i\in[2^{\ell}]. In the following hybrid games, we gradually change 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}} and 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}} for the ii-th tag τi\tau^{\prime}_{i}, which is the \ell-bit string representation of i[2]i\in[2^{\ell}]. So, it could happen that τi=τj\tau^{\prime}_{i}=\tau_{j} for some i[2]i\in[2^{\ell}] and j[q]j\in[q]. Let 𝖠𝖽𝗏0(𝖼𝗈𝗂𝗇)\mathsf{Adv}_{0}(\mathsf{coin}) and 𝖠𝖽𝗏xi\mathsf{Adv}_{x}^{i} be the advantage of 𝒜\mathpzc{A} in 𝖧𝗒𝖻0(𝖼𝗈𝗂𝗇)\mathsf{Hyb}_{0}(\mathsf{coin}) and 𝖧𝗒𝖻xi\mathsf{Hyb}_{x}^{i}, respectively.

𝖧𝗒𝖻1i\mathsf{Hyb}_{1}^{i}:

We generate 𝗉𝗄^\widehat{\mathsf{pk}} as obfuscated 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} described in Figure 4. In this hybrid game, we set ri𝖥𝖪(τi)r_{i}\leftarrow\mathsf{F}_{\mathsf{K}}(\tau^{\prime}_{i}), 𝖥τi𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(𝖪,τi)\mathsf{F}_{\neq\tau^{\prime}_{i}}\leftarrow\mathsf{Puncture}(\mathsf{K},\tau^{\prime}_{i}), (𝗉𝗄τi,𝗆𝗌𝗄τi)𝟣𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ;ri)(\mathsf{pk}_{\tau^{\prime}_{i}},\mathsf{msk}_{\tau^{\prime}_{i}})\leftarrow\mathsf{1SDFE}.\mathsf{Setup}(1^{\lambda};r_{i}), and 𝗉𝗄^i𝒪1(𝖲𝟣𝖿𝖾[τi,𝖥τi,𝗉𝗄τi])\widehat{\mathsf{pk}}\leftarrow i\mathcal{O}_{1}(\mathsf{S}^{\ast}_{\mathsf{1fe}}[\tau^{\prime}_{i},\mathsf{F}_{\neq\tau^{\prime}_{i}},\mathsf{pk}_{\tau^{\prime}_{i}}]).

When i=1i=1, the behavior of 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} is the same as that of 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}} since the hard-wired 𝗉𝗄τ1\mathsf{pk}_{\tau^{\prime}_{1}} in 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} is the same as the output of 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}} on the input τ1\tau^{\prime}_{1}. Their size is also the same since we pad circuit 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}} to have the same size as 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}}^{*}. Then, we can use the indistinguishability of i𝒪1i\mathcal{O}_{1} and it holds that |𝖠𝖽𝗏0(0)𝖠𝖽𝗏11|𝗇𝖾𝗀𝗅(λ)\absolutevalue{\mathsf{Adv}_{0}(0)-\mathsf{Adv}_{1}^{1}}\leq{\mathsf{negl}}(\lambda).

𝖧𝗒𝖻2i\mathsf{Hyb}_{2}^{i}:

The challenge ciphertext is generated by obfuscating 𝖤𝟣𝖿𝖾\mathsf{E}^{*}_{\mathsf{1fe}} described in Figure 5. In this hybrid game, we set ri𝖥𝖪(τi)r^{\prime}_{i}\leftarrow\mathsf{F}^{\prime}_{\mathsf{K}^{\prime}}(\tau^{\prime}_{i}), 𝖥τi𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(𝖪,τi)\mathsf{F}^{\prime}_{\neq\tau^{\prime}_{i}}\leftarrow\mathsf{Puncture}(\mathsf{K}^{\prime},\tau^{\prime}_{i}), 𝖼𝗍i𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τi,x0;ri)\mathsf{ct}_{i}\leftarrow\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\prime}_{i}},x_{0};r^{\prime}_{i}), 𝗉𝗄τi𝗉𝗄^(τi)\mathsf{pk}_{\tau^{\prime}_{i}}\leftarrow\widehat{\mathsf{pk}}(\tau^{\prime}_{i}), and 𝖼𝗍^i𝒪2(𝖤𝟣𝖿𝖾[τ,𝗉𝗄^,𝖥τ,x0,x1,𝖼𝗍τ])\widehat{\mathsf{ct}}\leftarrow i\mathcal{O}_{2}(\mathsf{E}_{\mathsf{1fe}}[\tau^{\prime},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\prime}},\allowbreak x_{0},x_{1},\mathsf{ct}_{\tau^{\prime}}]).

When i=1i=1, the behavior of 𝖤𝟣𝖿𝖾\mathsf{E}^{*}_{\mathsf{1fe}} is the same as that of 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}} since the hard-wired 𝖼𝗍1\mathsf{ct}_{1} in 𝖤𝟣𝖿𝖾\mathsf{E}^{*}_{\mathsf{1fe}} is the same as the output of 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}} on the input 11. Both circuits have the same size by padding 𝗉𝖺𝖽𝖤\mathsf{pad}_{\mathsf{E}}.

In addition, for i2i\geq 2, the behavior of 𝖤𝟣𝖿𝖾\mathsf{E}^{*}_{\mathsf{1fe}} does not change between 𝖧𝗒𝖻1i\mathsf{Hyb}_{1}^{i} and 𝖧𝗒𝖻2i\mathsf{Hyb}_{2}^{i}. Thus, it holds that |𝖠𝖽𝗏2i𝖠𝖽𝗏1i|𝗇𝖾𝗀𝗅(λ)\absolutevalue{\mathsf{Adv}_{2}^{i}-\mathsf{Adv}_{1}^{i}}\leq{\mathsf{negl}}(\lambda) for every i[2]i\in[2^{\ell}] due to the indistinguishability of i𝒪2i\mathcal{O}_{2}.

Setup Circuit 𝖲𝟣𝖿𝖾[τ,𝖥τ,𝗉𝗄τ](τ)\mathsf{S}^{*}_{\mathsf{1fe}}[\tau^{\prime},\mathsf{F}_{\neq\tau^{\prime}},\mathsf{pk}_{\tau^{\prime}}](\tau) Hardwired: tag τ\tau^{\prime}, puncturable PRF key 𝖥τ\mathsf{F}_{\neq\tau^{\prime}}, and 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} public-key 𝗉𝗄τ\mathsf{pk}_{\tau^{\prime}}. Input: tag τ{0,1}\tau\in\{0,1\}^{\ell}. Padding: circuit is padded to size 𝗉𝖺𝖽𝖲𝗉𝖺𝖽𝖲(λ,n,s)\mathsf{pad}_{\mathsf{S}}\coloneqq\mathsf{pad}_{\mathsf{S}}(\lambda,n,s), which is determined in analysis. 1. If τ=τ\tau^{\prime}=\tau, output 𝗉𝗄τ\mathsf{pk}_{\tau^{\prime}}. 2. Else, compute r𝖥τ(τ)r\leftarrow\mathsf{F}_{\neq\tau^{\prime}}(\tau). 3. Compute (𝗉𝗄τ,𝗆𝗌𝗄τ)𝟣𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ;r)(\mathsf{pk}_{\tau},\mathsf{msk}_{\tau})\leftarrow\mathsf{1SDFE}.\mathsf{Setup}(1^{\lambda};r) and output 𝗉𝗄τ\mathsf{pk}_{\tau}.

Figure 4: Description of 𝖲𝟣𝖿𝖾[τ,𝖥τ,𝗉𝗄τ]\mathsf{S}^{*}_{\mathsf{1fe}}[\tau^{\prime},\mathsf{F}_{\neq\tau^{\prime}},\mathsf{pk}_{\tau^{\prime}}].

Encryption Circuit 𝖤𝟣𝖿𝖾[τ,𝗉𝗄^,𝖥τ,x0,x1,𝖼𝗍τ](τ)\mathsf{E}^{*}_{\mathsf{1fe}}[\tau^{\prime},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\prime}},x_{0},x_{1},\mathsf{ct}_{\tau^{\prime}}](\tau) Hardwired: tag τ\tau^{\prime}, public key 𝗉𝗄^\widehat{\mathsf{pk}} (this is an obfuscated circuit), puncturable PRF key 𝖥τ\mathsf{F}^{\prime}_{\neq\tau^{\prime}}, plaintexts x0,x1x_{0},x_{1}, and ciphertext 𝖼𝗍τ\mathsf{ct}_{\tau^{\prime}}. Input: tag τ{0,1}\tau\in\{0,1\}^{\ell}. Padding: circuit is padded to size 𝗉𝖺𝖽𝖤𝗉𝖺𝖽𝖤(λ,n,s)\mathsf{pad}_{\mathsf{E}}\coloneqq\mathsf{pad}_{\mathsf{E}}(\lambda,n,s), which is determined in analysis. 1. If τ=τ\tau^{\prime}=\tau, output 𝖼𝗍τ\mathsf{ct}_{\tau^{\prime}}. 2. Else, compute rτ𝖥τ(τ)r^{\prime}_{\tau}\leftarrow\mathsf{F}^{\prime}_{\neq\tau^{\prime}}(\tau) and the circuit 𝗉𝗄^\widehat{\mathsf{pk}} on input τ\tau, that is, 𝗉𝗄τ𝗉𝗄^(τ)\mathsf{pk}_{\tau}\leftarrow\widehat{\mathsf{pk}}(\tau), If τ>τ\tau>\tau^{\prime}: Output 𝖼𝗍τ𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τ,x0;rτ)\mathsf{ct}_{\tau}\leftarrow\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau},x_{0};r^{\prime}_{\tau}). If τ<τ\tau<\tau^{\prime}: Output 𝖼𝗍τ𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τ,x1;rτ)\mathsf{ct}_{\tau}\leftarrow\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau},x_{1};r^{\prime}_{\tau}).

Figure 5: Description of 𝖤𝟣𝖿𝖾[τ,𝗉𝗄^,𝖥τ,x0,x1,𝖼𝗍τ]\mathsf{E}^{*}_{\mathsf{1fe}}[\tau^{\prime},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\prime}},x_{0},x_{1},\mathsf{ct}_{\tau^{\prime}}].
𝖧𝗒𝖻3i\mathsf{Hyb}_{3}^{i}:

We change ri=𝖥𝖪(τi)r_{i}=\mathsf{F}_{\mathsf{K}}(\tau^{\prime}_{i}) and ri=𝖥𝖪(τi)r^{\prime}_{i}=\mathsf{F}^{\prime}_{\mathsf{K}^{\prime}}(\tau^{\prime}_{i}) into uniformly random rir_{i} and rir^{\prime}_{i}. Due to the pseudorandomness at punctured points of puncturable PRF, it holds that |𝖠𝖽𝗏3i𝖠𝖽𝗏2i|𝗇𝖾𝗀𝗅(λ)\absolutevalue{\mathsf{Adv}_{3}^{i}-\mathsf{Adv}_{2}^{i}}\leq{\mathsf{negl}}(\lambda) for every i[2]i\in[2^{\ell}].

𝖧𝗒𝖻4i\mathsf{Hyb}_{4}^{i}:

We change 𝖼𝗍τi\mathsf{ct}_{\tau^{\prime}_{i}} from 𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τi,x0)\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\prime}_{i}},x_{0}) to 𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τi,x1)\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\prime}_{i}},x_{1}). In 𝖧𝗒𝖻3i\mathsf{Hyb}_{3}^{i} and 𝖧𝗒𝖻4i\mathsf{Hyb}_{4}^{i}, we do not need randomness to generate 𝗉𝗄τi\mathsf{pk}_{\tau^{\prime}_{i}} and 𝖼𝗍τi\mathsf{ct}_{\tau^{\prime}_{i}}. We just hardwire 𝗉𝗄τi\mathsf{pk}_{\tau^{\prime}_{i}} and 𝖼𝗍τi\mathsf{ct}_{\tau^{\prime}_{i}} into 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} and 𝖤𝟣𝖿𝖾\mathsf{E}^{*}_{\mathsf{1fe}}, respectively. Therefore, for every i[2]i\in[2^{\ell}], |𝖠𝖽𝗏4i𝖠𝖽𝗏3i|𝗇𝖾𝗀𝗅(λ)\absolutevalue{\mathsf{Adv}_{4}^{i}-\mathsf{Adv}_{3}^{i}}\leq{\mathsf{negl}}(\lambda) follows from the adaptive security of 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} under the master public key 𝗉𝗄τi\mathsf{pk}_{\tau^{\prime}_{i}}.

Lemma 7.38.

It holds that |𝖠𝖽𝗏4i𝖠𝖽𝗏3i|𝗇𝖾𝗀𝗅(λ)\absolutevalue{\mathsf{Adv}_{4}^{i}-\mathsf{Adv}_{3}^{i}}\leq{\mathsf{negl}}(\lambda) for all i[2]i\in[2^{\ell}] if 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} is adaptively single-key secure.

Proof of Lemma 7.38.

We construct an adversary \mathpzc{B} in the selective security game of 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} as follows. To simulate the adaptive security game of 𝖲𝖣𝖥𝖤\mathsf{SDFE}, \mathpzc{B} runs 𝒜\mathpzc{A} attacking 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE}. 𝒜\mathpzc{A} adaptively sends key queries f1,,fqf_{1},\cdots,f_{q}. \mathpzc{B} simulates the game of 𝖲𝖣𝖥𝖤\mathsf{SDFE} as follows.

Setup:

\mathpzc{B} receives a public key 𝗉𝗄τi\mathsf{pk}_{\tau^{\prime}_{i}}. Then, \mathpzc{B} chooses τ1,,τq{0,1}\tau_{1},\ldots,\tau_{q}\in\{0,1\}^{\ell} and generates 𝖪\mathsf{K} and 𝖪\mathsf{K}^{\prime} by using 𝖯𝖱𝖥.𝖦𝖾𝗇(1λ)\mathsf{PRF}.\mathsf{Gen}(1^{\lambda}) and 𝖯𝖱𝖥.𝖦𝖾𝗇(1λ)\mathsf{PRF}.\mathsf{Gen}^{\prime}(1^{\lambda}), 𝖥τi𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(𝖪,τi)\mathsf{F}_{\neq\tau^{\prime}_{i}}\leftarrow\mathsf{Puncture}(\mathsf{K},\tau^{\prime}_{i}), 𝖥τi𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(𝖪,τi)\mathsf{F}^{\prime}_{\neq\tau^{\prime}_{i}}\leftarrow\mathsf{Puncture}(\mathsf{K}^{\prime},\tau^{\prime}_{i}), and the public key 𝗉𝗄^i𝒪1(𝖲𝟣𝖿𝖾[τi,𝖥τi,𝗉𝗄τi])\widehat{\mathsf{pk}}\coloneqq i\mathcal{O}_{1}(\mathsf{S}^{*}_{\mathsf{1fe}}[\tau^{\prime}_{i},\mathsf{F}_{\neq\tau^{\prime}_{i}},\mathsf{pk}_{\tau^{\prime}_{i}}]) for 𝖲𝖣𝖥𝖤\mathsf{SDFE} according to Figure 4 by using the given 𝗉𝗄τi\mathsf{pk}_{\tau^{\prime}_{i}}. \mathpzc{B} sends 𝗉𝗄^\widehat{\mathsf{pk}} to 𝒜\mathpzc{A}.

Key Generation:

When fkf_{k} (i.e., kk-th query) is queried, \mathpzc{B} checks fk(x0)=fk(x1)f_{k}(x_{0})=f_{k}(x_{1}) and outputs \bot if it does not hold. Otherwise, \mathpzc{B} checks whether τi=τk\tau^{\prime}_{i}=\tau_{k} (i.e., ii-th tag in [2][2^{\ell}] is the same as the tag for kk-th key query). \mathpzc{B} passes fkf_{k} to its challenger, receives 𝓈𝓀𝒻𝓀\mathpzc{sk}_{f_{k}}, and sends (τi,𝓈𝓀𝒻𝓀)(\tau^{\prime}_{i},\mathpzc{sk}_{f_{k}}) to 𝒜\mathpzc{A}. If τiτk\tau^{\prime}_{i}\neq\tau_{k}, \mathpzc{B} generates 𝓈𝓀𝒻𝓀𝟣𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄τ𝓀,𝒻𝓀)\mathpzc{sk}_{f_{k}}\leftarrow\mathsf{1SDFE}.\mathpzc{QKG}(\mathsf{msk}_{\tau_{k}},f_{k}) by using (𝗉𝗄τk,𝗆𝗌𝗄τk)𝟣𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ;𝖥τi(τk))(\mathsf{pk}_{\tau_{k}},\mathsf{msk}_{\tau_{k}})\leftarrow\mathsf{1SDFE}.\mathsf{Setup}(1^{\lambda};\mathsf{F}_{\neq\tau^{\prime}_{i}}(\tau_{k})) and returns it. Note that we do not need 𝗆𝗌𝗄τi\mathsf{msk}_{\tau^{\prime}_{i}} for this simulation since \mathpzc{B} receives 𝓈𝓀𝒻𝓀\mathpzc{sk}_{f_{k}} from its challenger if τi=τk\tau^{\prime}_{i}=\tau_{k}.

Encryption:

When 𝒜\mathpzc{A} sends (x0,x1)(x_{0},x_{1}) to \mathpzc{B}, \mathpzc{B} passes (x0,x1)(x_{0},x_{1}) to its challenger and receives 𝖼𝗍τi\mathsf{ct}^{\ast}_{\tau^{\prime}_{i}}. Then, \mathpzc{B} generates the challenge ciphertext 𝖼𝗍^i𝒪2(𝖤[τi,𝗉𝗄^,𝖥τi,x0,x1,𝖼𝗍τi])\widehat{\mathsf{ct}}\leftarrow i\mathcal{O}_{2}(\mathsf{E}^{\ast}[\tau^{\prime}_{i},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\prime}_{i}},x_{0},x_{1},\mathsf{ct}^{\ast}_{\tau^{\prime}_{i}}]) (obfuscated 𝖤𝟣𝖿𝖾\mathsf{E}^{*}_{\mathsf{1fe}} Figure 5).

The simulation is completed. If \mathpzc{B} receives 𝖼𝗍τi=𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τi,x0)\mathsf{ct}^{\ast}_{\tau^{\prime}_{i}}=\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\prime}_{i}},x_{0}), it perfectly simulates 𝖧𝗒𝖻3i\mathsf{Hyb}_{3}^{i}. If \mathpzc{B} receives 𝖼𝗍τi=𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τi,x1)\mathsf{ct}^{\ast}_{\tau^{\prime}_{i}}=\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\prime}_{i}},x_{1}), it perfectly simulates 𝖧𝗒𝖻4i\mathsf{Hyb}_{4}^{i}. This completes the proof of the lemma.   

𝖧𝗒𝖻5i\mathsf{Hyb}_{5}^{i}:

We change rir_{i} and rir^{\prime}_{i} into ri=𝖥𝖪(τi)r_{i}=\mathsf{F}_{\mathsf{K}}(\tau^{\prime}_{i}) and ri=𝖥𝖪(τi)r^{\prime}_{i}=\mathsf{F}^{\prime}_{\mathsf{K}^{\prime}}(\tau^{\prime}_{i}). We can show |𝖠𝖽𝗏5i𝖠𝖽𝗏4i|𝗇𝖾𝗀𝗅(λ)\absolutevalue{\mathsf{Adv}_{5}^{i}-\mathsf{Adv}_{4}^{i}}\leq{\mathsf{negl}}(\lambda) for every i[2]i\in[2^{\ell}] by using the pseudorandomness at punctured point of puncturable PRF.

From the definition of 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}}, 𝖤𝟣𝖿𝖾\mathsf{E}^{*}_{\mathsf{1fe}}, and 𝖧𝗒𝖻1i\mathsf{Hyb}_{1}^{i}, the behaviors of 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} and 𝖤𝟣𝖿𝖾\mathsf{E}^{*}_{\mathsf{1fe}} in 𝖧𝗒𝖻5i\mathsf{Hyb}_{5}^{i} and 𝖧𝗒𝖻1i+1\mathsf{Hyb}_{1}^{i+1} are the same. Thus, |𝖠𝖽𝗏1i+1𝖠𝖽𝗏5i|𝗇𝖾𝗀𝗅(λ)\absolutevalue{\mathsf{Adv}_{1}^{i+1}-\mathsf{Adv}_{5}^{i}}\leq{\mathsf{negl}}(\lambda) holds for every i[21]i\in[2^{\ell}-1] due to the indistinguishability of i𝒪1i\mathcal{O}_{1} and i𝒪2i\mathcal{O}_{2}. It also holds that |𝖠𝖽𝗏0(1)𝖠𝖽𝗏52|𝗇𝖾𝗀𝗅(λ)\absolutevalue{\mathsf{Adv}_{0}(1)-\mathsf{Adv}_{5}^{2^{\ell}}}\leq{\mathsf{negl}}(\lambda) based on the security guarantee of i𝒪1i\mathcal{O}_{1} and i𝒪2i\mathcal{O}_{2}.

There are O(2)O(2^{\ell}) hybrid games. However, if 𝗇𝖾𝗀𝗅(λ){\mathsf{negl}}(\lambda) is sub-exponentially small for all transitions, |𝖠𝖽𝗏0(0)𝖠𝖽𝗏0(1)|\absolutevalue{\mathsf{Adv}_{0}(0)-\mathsf{Adv}_{0}(1)} is negligible. Note that it is sufficient to set =polylog(λ)\ell={\mathrm{polylog}}(\lambda).

Padding Parameter.

The proof of security relies on the indistinguishability of obfuscated 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}} and 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} defined in Figures 2 and 4, and that of obfuscated 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}} and 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}}^{\ast} defined in Figures 3 and 5. Accordingly, we set 𝗉𝖺𝖽𝖲max(|𝖲𝟣𝖿𝖾|,|𝖲𝟣𝖿𝖾|)\mathsf{pad}_{\mathsf{S}}\coloneqq\max(\absolutevalue{\mathsf{S}_{\mathsf{1fe}}},\absolutevalue{\mathsf{S}_{\mathsf{1fe}}^{*}}) and 𝗉𝖺𝖽𝖤max(|𝖤𝟣𝖿𝖾|,|𝖤𝟣𝖿𝖾|)\mathsf{pad}_{\mathsf{E}}\coloneqq\max(\absolutevalue{\mathsf{E}_{\mathsf{1fe}}},\absolutevalue{\mathsf{E}_{\mathsf{1fe}}^{*}}).

The circuits 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}} and 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}}^{*} compute a puncturable PRF over domain {0,1}\{0,1\}^{\ell} and a key pair of 𝟣𝖥𝖤\mathsf{1FE}, and may have punctured PRF keys and a public key hardwired. The circuits 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}} and 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}}^{*} run the circuit 𝗉𝗄^\widehat{\mathsf{pk}} and compute a puncturable PRF over domain {0,1}\{0,1\}^{\ell} and a ciphertext of 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE}, and may have punctured PRF keys, tags, plaintexts, and a hard-wired ciphertext. Note that \ell is a polynomial of λ\lambda. Thus, it holds that

𝗉𝖺𝖽𝖲\displaystyle\mathsf{pad}_{\mathsf{S}} poly(λ,n,s),\displaystyle\leq{\mathrm{poly}}(\lambda,n,s), (42)
𝗉𝖺𝖽𝖤\displaystyle\mathsf{pad}_{\mathsf{E}} poly(λ,n,s,|𝗉𝗄^|).\displaystyle\leq{\mathrm{poly}}(\lambda,n,s,\absolutevalue{\widehat{\mathsf{pk}}}). (43)

Therefore, we complete the proof of Theorem 7.37.   

Theorem 7.39.

If 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} is challenge-only strong γ/2\gamma/2-anti-piracy secure and sub-exponentially adaptively single-key secure, i𝒪i\mathcal{O} is a sub-exponentially secure IO for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly}, and 𝖯𝖯𝖱𝖥\mathsf{PPRF} and 𝖯𝖯𝖱𝖥\mathsf{PPRF}^{\prime} are sub-exponentially secure puncturable PRFs, then 𝖲𝖣𝖥𝖤\mathsf{SDFE} is strong γ\gamma-anti-piracy secure.

Proof of Theorem 7.39.

Let 𝒜\mathpzc{A} be an adversary attacking the strong γ\gamma-anti-piracy of 𝖲𝖣𝖥𝖤\mathsf{SDFE}. We define a sequence of hybrid games. For the hybrid games, we define the following values. Let qq be the total number of key queries by 𝒜\mathpzc{A} except for the challenge query ff^{\ast}. Note that qq could be any polynomial. When we start the strong γ\gamma-anti-piracy security game, the adversary 𝒜\mathpzc{A} is fixed, and qq is also fixed. We choose tags τ1,,τq{0,1}\tau_{1},\ldots,\tau_{q}\leftarrow\{0,1\}^{\ell} for qq key queries and τ\tau^{\ast} for the challenge query at the beginning of the game. We can interpret \ell bit strings as integers and assume that there is no i,ji,j such that iji\neq j and τi=τj\tau_{i}=\tau_{j} without loss of generality.

𝖧𝗒𝖻0\mathsf{Hyb}_{0}:

The first game is the original strong γ\gamma-anti-piracy experiment, that is, 𝖤𝗑𝗉𝖲𝖣𝖥𝖤,𝒜𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒(1λ,γ)\mathsf{Exp}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}}(1^{\lambda},\gamma).

  1. 1.

    The challenger generates (𝗉𝗄^,𝗆𝗌𝗄^)=(i𝒪1(𝖲𝟣𝖿𝖾),𝖪)𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ)(\widehat{\mathsf{pk}},\widehat{\mathsf{msk}})=(i\mathcal{O}_{1}(\mathsf{S}_{\mathsf{1fe}}),\mathsf{K})\leftarrow\mathsf{SDFE}.\mathsf{Setup}(1^{\lambda}) and sends 𝗉𝗄^\widehat{\mathsf{pk}} to 𝒜\mathpzc{A}.

  2. 2.

    𝒜\mathpzc{A} sends key queries fkf_{k} to the challenger and the challenger returns 𝓈𝓀^fk=(τk,𝓈𝓀𝒻𝓀,τ𝓀)𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄^,𝒻𝓀)\widehat{\mathpzc{sk}}_{f_{k}}=(\tau_{k},\mathpzc{sk}_{f_{k},\tau_{k}})\leftarrow\mathsf{SDFE}.\mathpzc{QKG}(\widehat{\mathsf{msk}},f_{k}) where 𝓈𝓀𝒻𝓀,τ𝓀𝟣𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄τ𝓀,𝒻𝓀)\mathpzc{sk}_{f_{k},\tau_{k}}\leftarrow\mathsf{1SDFE}.\mathpzc{QKG}(\mathsf{msk}_{\tau_{k}},f_{k}).

  3. 3.

    At some point 𝒜\mathpzc{A} sends a challenge query ff^{*} to the challenger and the challenger returns 𝓈𝓀^=(τ,𝓈𝓀𝒻)𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄^,𝒻)\widehat{\mathpzc{sk}}=(\tau^{\ast},\mathpzc{sk}_{f^{\ast}})\leftarrow\mathsf{SDFE}.\mathpzc{QKG}(\widehat{\mathsf{msk}},f^{\ast}) where 𝓈𝓀𝒻𝟣𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄τ,𝒻)\mathpzc{sk}_{f^{\ast}}\leftarrow\mathsf{1SDFE}.\mathpzc{QKG}(\mathsf{msk}_{\tau^{\ast}},f^{*}).

  4. 4.

    Again, 𝒜\mathpzc{A} sends fkf_{k} to the challenger and the challenger returns 𝓈𝓀^fk𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄^,𝒻𝓀)\widehat{\mathpzc{sk}}_{f_{k}}\leftarrow\mathsf{SDFE}.\mathpzc{QKG}(\widehat{\mathsf{msk}},f_{k}).

  5. 5.

    𝒜\mathpzc{A} outputs (x0,x1)(x_{0},x_{1}) and two (possibly entangled) quantum decryptors 𝒟1=(𝓆[𝖱1],U1)\mathpzc{D}_{1}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],\boldsymbol{U}_{1}) and 𝒟2=(𝓆[𝖱2],U2)\mathpzc{D}_{2}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],\boldsymbol{U}_{2}), where ifi(x0)=fi(x1)\forall i\ f_{i}(x_{0})=f_{i}(x_{1}), f(x0)f(x1)f^{*}(x_{0})\neq f^{*}(x_{1}), 𝓆\mathpzc{q} is a quantum state over registers 𝖱1{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1} and 𝖱2{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}, and 𝑼1\boldsymbol{U}_{1} and 𝑼2\boldsymbol{U}_{2} are general quantum circuits.

  6. 6.

    For i{1,2}i\in\{1,2\}, let 𝒫i,D\mathcal{P}_{i,D} be the following mixture of projective measurements acting on some quantum state 𝓆\mathpzc{q}^{\prime}:

    • Sample a uniform 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\}. Compute 𝖼𝗍^𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄^,x𝖼𝗈𝗂𝗇)\widehat{\mathsf{ct}}\leftarrow\mathsf{SDFE}.\mathsf{Enc}(\widehat{\mathsf{pk}},x_{\mathsf{coin}}) and set 𝖼𝗍𝖼𝗍^\mathsf{ct}\coloneqq\widehat{\mathsf{ct}}.

    • Run the quantum decryptor (𝓆,U𝒾)(\mathpzc{q}^{\prime},\boldsymbol{U}_{i}) on input 𝖼𝗍\mathsf{ct}. If the outcome is 𝖼𝗈𝗂𝗇\mathsf{coin}, output 11. Otherwise, output 0.

    Let DD be the distribution over pairs (𝖼𝗈𝗂𝗇,𝖼𝗍)(\mathsf{coin},\mathsf{ct}) defined in the first item above, and let i={𝑬(𝖼𝗈𝗂𝗇,𝖼𝗍)i}𝖼𝗈𝗂𝗇,𝖼𝗍\mathcal{E}_{i}=\{\boldsymbol{E}^{i}_{(\mathsf{coin},\mathsf{ct})}\}_{\mathsf{coin},\mathsf{ct}} be a collection of projective measurements where 𝑬(𝖼𝗈𝗂𝗇,𝖼𝗍)i\boldsymbol{E}^{i}_{(\mathsf{coin},\mathsf{ct})} is the projective measurement described in the second item above. 𝒫i,D\mathcal{P}_{i,D} is the mixture of projective measurements associated to DD and i\mathcal{E}_{i}.

  7. 7.

    The challenger runs the test for a γ\gamma-good FE decryptor with respect to 𝗉𝗄\mathsf{pk}, (x0,x1)(x_{0},x_{1}), and ff^{\ast} on 𝒟1\mathpzc{D}_{1} and 𝒟2\mathpzc{D}_{2}. The challenger outputs 11 if both tests pass, otherwise outputs 0.

In the following hybrid games, we gradually change 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}} and 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}} for the ii-th tag τi\tau^{\prime}_{i}, which is the \ell-bit string representation of i[2]i\in[2^{\ell}], with the following exception. Let i[2]i^{\ast}\in[2^{\ell}] is the integer representation of τ{0,1}\tau^{\ast}\in\{0,1\}^{\ell}. Instead of going over indices {1,,i1,i,i+1,,2}\{1,\ldots,i^{\ast}-1,i^{\ast},i^{\ast}+1,\ldots,2^{\ell}\}, we go over indices Ii{1,,i1,i+1,,2,i}I_{i^{\ast}}\coloneqq\{1,\ldots,i^{\ast}-1,i^{\ast}+1,\ldots,2^{\ell},i^{\ast}\}. That is, we skip the tag τi\tau_{i^{\ast}} and go to τi\tau_{i^{\ast}} after we finish the 22^{\ell}-th tag τ2\tau_{2^{\ell}}. It could happen that τi=τj\tau^{\prime}_{i}=\tau_{j} for some i[2]i\in[2^{\ell}] and j[q]j\in[q]. Let 𝖠𝖽𝗏xi\mathsf{Adv}_{x}^{i} be the advantage of 𝒜\mathpzc{A} in 𝖧𝗒𝖻xi\mathsf{Hyb}_{x}^{i}.

𝖧𝗒𝖻1i\mathsf{Hyb}_{1}^{i}:

This is defined for i[Ii]i\in[I_{i^{\ast}}] and the same as 𝖧𝗒𝖻5i1\mathsf{Hyb}_{5}^{i-1} except that we generate 𝗉𝗄^\widehat{\mathsf{pk}} as obfuscated 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} described in Figure 6. Note that we define 𝖧𝗒𝖻50=𝖧𝗒𝖻0\mathsf{Hyb}_{5}^{0}=\mathsf{Hyb}_{0}. In this hybrid game, we set rτi𝖥𝖪(τi)r_{\tau^{\prime}_{i}}\leftarrow\mathsf{F}_{\mathsf{K}}(\tau^{\prime}_{i}), 𝖥τi𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(𝖪,τi)\mathsf{F}_{\neq\tau^{\prime}_{i}}\leftarrow\mathsf{Puncture}(\mathsf{K},\tau^{\prime}_{i}), and (𝗉𝗄τi,𝗆𝗌𝗄τi)𝟣𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ;rτi)(\mathsf{pk}_{\tau^{\prime}_{i}},\mathsf{msk}_{\tau^{\prime}_{i}})\leftarrow\mathsf{1SDFE}.\mathsf{Setup}(1^{\lambda};r_{\tau^{\prime}_{i}}).

The behavior of 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} is the same as that of 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}} since the hard-wired 𝗉𝗄τ1\mathsf{pk}_{\tau^{\prime}_{1}} in 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} is the same as the output of 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}} on the input τ1\tau^{\prime}_{1}. Their size is also the same since we pad circuit 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}} to have the same size as 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}}^{*}. Then, we can use the indistinguishability guarantee of i𝒪1i\mathcal{O}_{1} and it holds that i𝒪1(𝖲𝟣𝖿𝖾[𝖪])i\mathcal{O}_{1}(\mathsf{S}_{\mathsf{1fe}}[\mathsf{K}]) is computationally indistinguishable from i𝒪1(𝖲𝟣𝖿𝖾[τi,𝖥τi,𝗉𝗄τi])i\mathcal{O}_{1}(\mathsf{S}^{\ast}_{\mathsf{1fe}}[\tau^{\prime}_{i},\mathsf{F}_{\neq\tau^{\prime}_{i}},\mathsf{pk}_{\tau^{\prime}_{i}}]). Let D(1,i)D^{(1,i)} be the distribution over pairs (𝖼𝗈𝗂𝗇,𝖼𝗍)(\mathsf{coin},\mathsf{ct}) defined in 𝖧𝗒𝖻0\mathsf{Hyb}_{0} except that i𝒪1(𝖲𝟣𝖿𝖾[τi,𝖥τi,𝗉𝗄τi])i\mathcal{O}_{1}(\mathsf{S}^{\ast}_{\mathsf{1fe}}[\tau^{\prime}_{i},\mathsf{F}_{\neq\tau^{\prime}_{i}},\allowbreak\mathsf{pk}_{\tau^{\prime}_{i}}]) as 𝗉𝗄^\widehat{\mathsf{pk}}. Then, D(1,1)D^{(1,1)} is computationally indistinguishable from DD.

𝖧𝗒𝖻2i\mathsf{Hyb}_{2}^{i}:

This is defined for i[Ii]i\in[I_{i^{\ast}}] and the same as 𝖧𝗒𝖻1i\mathsf{Hyb}_{1}^{i} except that we change the distribution D(1,i)D^{(1,i)} over pairs (𝖼𝗈𝗂𝗇,𝖼𝗍)(\mathsf{coin},\mathsf{ct}) into D(2,i)D^{(2,i)} as follows.

  • Sample a uniform 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\}.

  • Compute rτi𝖥𝖪(τi)r^{\prime}_{\tau^{\prime}_{i}}\leftarrow\mathsf{F}^{\prime}_{\mathsf{K}^{\prime}}(\tau^{\prime}_{i}), 𝖥τi𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(𝖪,τi)\mathsf{F}^{\prime}_{\neq\tau^{\prime}_{i}}\leftarrow\mathsf{Puncture}^{\prime}(\mathsf{K}^{\prime},\tau^{\prime}_{i}), 𝖼𝗍τi𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τi,x𝖼𝗈𝗂𝗇;rτi)\mathsf{ct}_{\tau^{\prime}_{i}}\leftarrow\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\prime}_{i}},x_{\mathsf{coin}};r^{\prime}_{\tau^{\prime}_{i}}), and 𝖼𝗍^i𝒪2(𝖤𝟣𝖿𝖾[τi,τ,𝗉𝗄^,𝖥τi,x𝖼𝗈𝗂𝗇,x1,𝖼𝗍τi])\widehat{\mathsf{ct}}\leftarrow i\mathcal{O}_{2}(\mathsf{E}^{\ast}_{\mathsf{1fe}}[\tau^{\prime}_{i},\tau^{\ast},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\prime}_{i}},x_{\mathsf{coin}},x_{1},\mathsf{ct}_{\tau^{\prime}_{i}}]) where 𝖤𝟣𝖿𝖾\mathsf{E}^{\ast}_{\mathsf{1fe}} is described in Figure 7. Set 𝖼𝗍𝖼𝗍^\mathsf{ct}\coloneqq\widehat{\mathsf{ct}}.

Setup Circuit 𝖲𝟣𝖿𝖾[τ,𝖥τ,𝗉𝗄τ](τ)\mathsf{S}^{*}_{\mathsf{1fe}}[\tau^{\prime},\mathsf{F}_{\neq\tau^{\prime}},\mathsf{pk}_{\tau^{\prime}}](\tau) Hardwired: tag τ\tau^{\prime}, puncturable PRF key 𝖥τ\mathsf{F}_{\neq\tau^{\prime}}, and 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} public-key 𝗉𝗄τ\mathsf{pk}_{\tau^{\prime}}. Input: tag τ{0,1}\tau\in\{0,1\}^{\ell}. Padding: circuit is padded to size 𝗉𝖺𝖽𝖲𝗉𝖺𝖽𝖲(λ,n,s)\mathsf{pad}_{\mathsf{S}}\coloneqq\mathsf{pad}_{\mathsf{S}}(\lambda,n,s), which is determined in analysis. 1. If τ=τ\tau^{\prime}=\tau, output 𝗉𝗄τ\mathsf{pk}_{\tau^{\prime}}. 2. Else, compute r𝖥τ(τ)r\leftarrow\mathsf{F}_{\neq\tau^{\prime}}(\tau). 3. Compute (𝗉𝗄τ,𝗆𝗌𝗄τ)𝟣𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ;ri)(\mathsf{pk}_{\tau},\mathsf{msk}_{\tau})\leftarrow\mathsf{1SDFE}.\mathsf{Setup}(1^{\lambda};r_{i}) and output 𝗉𝗄τ\mathsf{pk}_{\tau}.

Figure 6: Circuit 𝖲𝟣𝖿𝖾[τ,𝖥τ,𝗉𝗄τ]\mathsf{S}^{*}_{\mathsf{1fe}}[\tau^{\prime},\mathsf{F}_{\neq\tau^{\prime}},\mathsf{pk}_{\tau^{\prime}}].

Encryption Circuit 𝖤𝟣𝖿𝖾[τ,τ,𝗉𝗄^,𝖥τ,x𝖼𝗈𝗂𝗇,x1,𝖼𝗍τ](τ)\mathsf{E}^{*}_{\mathsf{1fe}}[\tau^{\prime},\tau^{\ast},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\prime}},x_{\mathsf{coin}},x_{1},\mathsf{ct}_{\tau^{\prime}}](\tau) Hardwired: tags τ\tau^{\prime}, τ\tau^{\ast}, public key 𝗉𝗄^\widehat{\mathsf{pk}} (this is an obfuscated circuit), puncturable PRF key 𝖥τ\mathsf{F}^{\prime}_{\neq\tau^{\prime}}, plaintexts x𝖼𝗈𝗂𝗇,x1x_{\mathsf{coin}},x_{1}, and ciphertext 𝖼𝗍τ\mathsf{ct}_{\tau^{\prime}}. Input: tag τ{0,1}\tau\in\{0,1\}^{\ell}. Padding: circuit is padded to size 𝗉𝖺𝖽𝖤𝗉𝖺𝖽𝖤(λ,n,s)\mathsf{pad}_{\mathsf{E}}\coloneqq\mathsf{pad}_{\mathsf{E}}(\lambda,n,s), which is determined in analysis. 1. If τ=τ\tau^{\prime}=\tau, output 𝖼𝗍τ\mathsf{ct}_{\tau^{\prime}}. 2. Else, compute rτ𝖥τi(τ)r^{\prime}_{\tau}\leftarrow\mathsf{F}^{\prime}_{\neq\tau^{\prime}_{i}}(\tau) and the circuit 𝗉𝗄^\widehat{\mathsf{pk}} on input τ\tau, that is, 𝗉𝗄τ𝗉𝗄^(τ)\mathsf{pk}_{\tau}\leftarrow\widehat{\mathsf{pk}}(\tau), If τ=τ\tau=\tau^{\ast}: Output 𝖼𝗍τ𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τ,x𝖼𝗈𝗂𝗇;rτ)\mathsf{ct}_{\tau^{\ast}}\leftarrow\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\ast}},x_{\mathsf{coin}};r^{\prime}_{\tau^{\ast}}) If τ>τ\tau>\tau^{\prime}: Output 𝖼𝗍τ𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τ,x𝖼𝗈𝗂𝗇;rτ)\mathsf{ct}_{\tau}\leftarrow\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau},x_{\mathsf{coin}};r^{\prime}_{\tau}). If τ<τ\tau<\tau^{\prime}: Output 𝖼𝗍τ𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τ,x1;rτ)\mathsf{ct}_{\tau}\leftarrow\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau},x_{1};r^{\prime}_{\tau}).

Figure 7: Circuit 𝖤𝟣𝖿𝖾[τ,τ,𝗉𝗄^,𝖥τ,x𝖼𝗈𝗂𝗇,x1,𝖼𝗍τ]\mathsf{E}^{*}_{\mathsf{1fe}}[\tau^{\prime},\tau^{\ast},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\prime}},x_{\mathsf{coin}},x_{1},\mathsf{ct}_{\tau^{\prime}}].

The behavior of 𝖤𝟣𝖿𝖾\mathsf{E}^{*}_{\mathsf{1fe}} is the same as that of 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}} since the hard-wired 𝖼𝗍τi\mathsf{ct}_{\tau^{\prime}_{i}} in 𝖤𝟣𝖿𝖾\mathsf{E}^{*}_{\mathsf{1fe}} is the same as the output of 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}} on the input τi\tau^{\prime}_{i}. Moreover, both circuits have the same size by padding 𝗉𝖺𝖽𝖤\mathsf{pad}_{\mathsf{E}}. Then, we can use the indistinguishability of i𝒪2i\mathcal{O}_{2}, and it holds that D(2,i)D^{(2,i)} is computationally indistinguishable from D(1,i)D^{(1,i)}.

𝖧𝗒𝖻3i\mathsf{Hyb}_{3}^{i}:

This is defined for i[Ii]i\in[I_{i^{\ast}}] and the same as 𝖧𝗒𝖻2i\mathsf{Hyb}_{2}^{i} except that we use distribution D(3,i)D^{(3,i)}, which is the same as D(2,i)D^{(2,i)} except that setup randomness rτ𝖲𝖾𝗍𝗎𝗉r_{\tau^{\ast}}\leftarrow\mathcal{R}_{\mathsf{Setup}} and encryption randomness rτ𝖤𝗇𝖼r^{\prime}_{\tau^{\ast}}\leftarrow\mathcal{R}_{\mathsf{Enc}} are uniformly random. By the punctured pseudorandomness of 𝖥\mathsf{F} and 𝖥\mathsf{F}^{\prime}, D(3,i)D^{(3,i)} is computationally indistinguishable from D(2,i)D^{(2,i)}.

𝖧𝗒𝖻4i\mathsf{Hyb}_{4}^{i}:

This is defined for i[Ii]{i}i\in[I_{i^{\ast}}]\setminus\{i^{\ast}\} and the same as 𝖧𝗒𝖻3i\mathsf{Hyb}_{3}^{i} except that we use distribution D(4,i)D^{(4,i)}, which is the same as D(3,i)D^{(3,i)} except that the ciphertext 𝖼𝗍τi\mathsf{ct}_{\tau^{\prime}_{i}} is 𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τi,x1)\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\prime}_{i}},x_{1}) instead of 𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τi,x𝖼𝗈𝗂𝗇)\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\prime}_{i}},x_{\mathsf{coin}}). In 𝖧𝗒𝖻3i\mathsf{Hyb}_{3}^{i} and 𝖧𝗒𝖻4i\mathsf{Hyb}_{4}^{i}, we do not need randomness to generate 𝗉𝗄τi\mathsf{pk}_{\tau^{\prime}_{i}} and 𝖼𝗍τi\mathsf{ct}_{\tau^{\prime}_{i}}. We just hardwire 𝗉𝗄τi\mathsf{pk}_{\tau^{\prime}_{i}} and 𝖼𝗍τi\mathsf{ct}_{\tau^{\prime}_{i}} into 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} and 𝖤𝟣𝖿𝖾\mathsf{E}^{*}_{\mathsf{1fe}}, respectively. In addition, it holds that fk(x0)=fk(x1)f_{k}(x_{0})=f_{k}(x_{1}) for all k[q]k\in[q] by the requirement of strong γ\gamma-anti-piracy security. For every i[Ii]{i}i\in[I_{i^{\ast}}]\setminus\{i^{\ast}\}, by the adaptive security of 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} under the public key 𝗉𝗄τi\mathsf{pk}_{\tau^{\prime}_{i}}, D(4,i)D^{(4,i)} is computationally indistinguishable from D(3,i)D^{(3,i)}. Note that we do not need to generate a functional decryption key for i[Ii]i\in[I_{i^{\ast}}] such that τiτk\tau^{\prime}_{i}\neq\tau_{k}. The detail of this indistinguishability is almost the same as Lemma 7.38, and we omit it.

𝖧𝗒𝖻5i\mathsf{Hyb}_{5}^{i}:

This is defined for i[Ii]{i}i\in[I_{i^{\ast}}]\setminus\{i^{\ast}\} and the same as 𝖧𝗒𝖻4i\mathsf{Hyb}_{4}^{i} except that we use distribution D(5,i)D^{(5,i)}, which is the same as D(4,i)D^{(4,i)} except that we use ri=𝖥𝖪(τi)r_{i}=\mathsf{F}_{\mathsf{K}}(\tau^{\prime}_{i}) and ri=𝖥𝖪(τi)r^{\prime}_{i}=\mathsf{F}^{\prime}_{\mathsf{K}^{\prime}}(\tau^{\prime}_{i}). By the punctured pseudorandomness of 𝖥\mathsf{F} and 𝖥\mathsf{F}^{\prime}, D(5,i)D^{(5,i)} is computationally indistinguishable from D(4,i)D^{(4,i)}.

We finish describing one cycle of our hybrid games. We move from 𝖧𝗒𝖻5i\mathsf{Hyb}_{5}^{i} to 𝖧𝗒𝖻1i+1\mathsf{Hyb}_{1}^{i+1}. From the definition of 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} and 𝖧𝗒𝖻1i\mathsf{Hyb}_{1}^{i}, the behaviors of 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} in 𝖧𝗒𝖻5i\mathsf{Hyb}_{5}^{i} and 𝖧𝗒𝖻1i+1\mathsf{Hyb}_{1}^{i+1} are the same. It holds that D(1,i+1)D^{(1,i+1)} is computationally indistinguishable from D(5,i)D^{(5,i)}. So, we can arrive at 𝖧𝗒𝖻3i\mathsf{Hyb}_{3}^{i^{\ast}} by iterating the transitions so far.

𝖧𝗒𝖻4i\mathsf{Hyb}_{4}^{i^{\ast}}:

This is the same as 𝖧𝗒𝖻3i\mathsf{Hyb}_{3}^{i^{\ast}} except that we change the distribution D(3,i)D^{(3,i^{\ast})} over pairs (𝖼𝗈𝗂𝗇,𝖼𝗍)(\mathsf{coin},\mathsf{ct}) into D(4,i)D^{(4,i^{\ast})} as follows.

  • Sample a uniform 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\}.

  • Sample rτ𝖤𝗇𝖼r^{\prime}_{\tau^{\ast}}\leftarrow\mathcal{R}_{\mathsf{Enc}} and compute 𝖼𝗍τ𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τ,x𝖼𝗈𝗂𝗇;rτ)\mathsf{ct}_{\tau^{\ast}}\leftarrow\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\ast}},x_{\mathsf{coin}};r^{\prime}_{\tau^{\ast}}), 𝖪𝖯𝖱𝖥.𝖦𝖾𝗇(1λ)\mathsf{K}^{\prime}\leftarrow\mathsf{PRF}.\mathsf{Gen}^{\prime}(1^{\lambda}), 𝖥τ𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(𝖪,τ)\mathsf{F}^{\prime}_{\neq\tau^{\ast}}\leftarrow\mathsf{Puncture}^{\prime}(\mathsf{K}^{\prime},\tau^{\ast}), and 𝖼𝗍^i𝒪2(𝖤𝟣𝖿𝖾[τ,𝗉𝗄^,𝖥τ,x1,𝖼𝗍τ])\widehat{\mathsf{ct}}\leftarrow i\mathcal{O}_{2}(\mathsf{E}^{\ast\ast}_{\mathsf{1fe}}[\tau^{\ast},\widehat{\mathsf{pk}},\allowbreak\mathsf{F}^{\prime}_{\neq\tau^{\ast}},x_{1},\mathsf{ct}_{\tau^{\ast}}]) where 𝖤𝟣𝖿𝖾\mathsf{E}^{\ast\ast}_{\mathsf{1fe}} is described in Figure 8. Set 𝖼𝗍𝖼𝗍^\mathsf{ct}\coloneqq\widehat{\mathsf{ct}}.

Encryption Circuit 𝖤𝟣𝖿𝖾[τ,𝗉𝗄^,𝖥τ,x1,𝖼𝗍τ](τ)\mathsf{E}^{\ast\ast}_{\mathsf{1fe}}[\tau^{\ast},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\ast}},x_{1},\mathsf{ct}_{\tau^{\ast}}](\tau) Hardwired: tag τ\tau^{\ast}, public key 𝗉𝗄^\widehat{\mathsf{pk}} (this is an obfuscated circuit), puncturable PRF key 𝖥τ\mathsf{F}^{\prime}_{\neq\tau^{\ast}}, plaintext x1x_{1}, and ciphertext 𝖼𝗍τ\mathsf{ct}_{\tau^{\ast}}. Input: tag τ{0,1}\tau\in\{0,1\}^{\ell}. Padding: circuit is padded to size 𝗉𝖺𝖽𝖤𝗉𝖺𝖽𝖤(λ,n,s)\mathsf{pad}_{\mathsf{E}}\coloneqq\mathsf{pad}_{\mathsf{E}}(\lambda,n,s), which is determined in analysis. 1. If τ=τ\tau^{\ast}=\tau, output 𝖼𝗍τ\mathsf{ct}_{\tau^{\ast}}. 2. Else, compute rτ𝖥τ(τ)r^{\prime}_{\tau}\leftarrow\mathsf{F}^{\prime}_{\neq\tau^{\ast}}(\tau) and the circuit 𝗉𝗄^\widehat{\mathsf{pk}} on input τ\tau, that is, 𝗉𝗄τ𝗉𝗄^(τ)\mathsf{pk}_{\tau}\leftarrow\widehat{\mathsf{pk}}(\tau), 3. Output 𝖼𝗍τ𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τ,x1;rτ)\mathsf{ct}_{\tau}\leftarrow\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau},x_{1};r^{\prime}_{\tau}).

Figure 8: Circuit 𝖤𝟣𝖿𝖾[τ,𝗉𝗄^,𝖥τ,x1,𝖼𝗍τ]\mathsf{E}^{\ast\ast}_{\mathsf{1fe}}[\tau^{\ast},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\ast}},x_{1},\mathsf{ct}_{\tau^{\ast}}].

From the definitions of 𝖤𝟣𝖿𝖾\mathsf{E}^{\ast}_{\mathsf{1fe}}, 𝖤𝟣𝖿𝖾\mathsf{E}^{\ast\ast}_{\mathsf{1fe}}, and 𝖧𝗒𝖻3i\mathsf{Hyb}_{3}^{i^{\ast}}, the behaviors of 𝖤𝟣𝖿𝖾\mathsf{E}^{\ast}_{\mathsf{1fe}} in 𝖧𝗒𝖻3i\mathsf{Hyb}_{3}^{i^{\ast}} is the same as that of 𝖤𝟣𝖿𝖾\mathsf{E}^{\ast\ast}_{\mathsf{1fe}} in 𝖧𝗒𝖻4i\mathsf{Hyb}_{4}^{i^{\ast}}. Moreover, both circuits have the same size by padding 𝗉𝖺𝖽𝖤\mathsf{pad}_{\mathsf{E}}. Then, we can use the indistinguishability of i𝒪2i\mathcal{O}_{2}, and it holds that D(4,i)D^{(4,i^{\ast})} is computationally indistinguishable from D(3,i)D^{(3,i^{\ast})}. This change is for erasing information about 𝖼𝗈𝗂𝗇\mathsf{coin} from 𝖤𝟣𝖿𝖾\mathsf{E}^{\ast}_{\mathsf{1fe}}.

𝖧𝗒𝖻6\mathsf{Hyb}_{6}:

This is the same as 𝖧𝗒𝖻4i\mathsf{Hyb}_{4}^{i^{\ast}} except that we choose PRF keys 𝖪1,𝖪2{0,1}λ\mathsf{K}_{1},\mathsf{K}_{2}\leftarrow\{0,1\}^{\lambda} at the beginning of the game and change the distribution D(4,i)D^{(4,i^{\ast})} over pairs (𝖼𝗈𝗂𝗇,𝖼𝗍)(\mathsf{coin},\mathsf{ct}) into D(6)D^{(6)} as follows.

  • Sample a uniform 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\}.

  • Sample rτ𝖤𝗇𝖼r^{\prime}_{\tau^{\ast}}\leftarrow\mathcal{R}_{\mathsf{Enc}}, compute 𝖼𝗍τ𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τ,x𝖼𝗈𝗂𝗇;rτ)\mathsf{ct}_{\tau^{\ast}}\coloneqq\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\ast}},x_{\mathsf{coin}};r^{\prime}_{\tau^{\ast}}), r1𝖥𝖪1(1)(𝖼𝗍τ)r_{1}\leftarrow\mathsf{F}^{(1)}_{\mathsf{K}_{1}}(\mathsf{ct}_{\tau^{\ast}}), r2𝖥𝖪2(2)(𝖼𝗍τ)r_{2}\leftarrow\mathsf{F}^{(2)}_{\mathsf{K}_{2}}(\mathsf{ct}_{\tau^{\ast}}), 𝖪𝖯𝖱𝖥.𝖦𝖾𝗇(1λ;r1)\mathsf{K}^{\prime}\leftarrow\mathsf{PRF}^{\prime}.\mathsf{Gen}(1^{\lambda};r_{1}), 𝖥τ𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(𝖪,τ)\mathsf{F}^{\prime}_{\neq\tau^{\ast}}\leftarrow\mathsf{Puncture}^{\prime}(\mathsf{K}^{\prime},\tau^{\ast}), and 𝖼𝗍^i𝒪2(𝖤𝟣𝖿𝖾[τ,𝗉𝗄^,𝖥τ,x1,𝖼𝗍τ];r2)\widehat{\mathsf{ct}}\coloneqq i\mathcal{O}_{2}(\mathsf{E}^{\ast\ast}_{\mathsf{1fe}}[\tau^{\ast},\widehat{\mathsf{pk}},\allowbreak\mathsf{F}^{\prime}_{\neq\tau^{\ast}},x_{1},\mathsf{ct}_{\tau^{\ast}}];r_{2}) where 𝖤𝟣𝖿𝖾\mathsf{E}^{\ast\ast}_{\mathsf{1fe}} is described in Figure 8. Set 𝖼𝗍𝖼𝗍^\mathsf{ct}\coloneqq\widehat{\mathsf{ct}}.

That is, we de-randomize generation of 𝖪\mathsf{K}^{\prime} and 𝖼𝗍^\widehat{\mathsf{ct}}. Note that the puncturing algorithm 𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾\mathsf{Puncture}^{\prime} is deterministic in the GGM construction based puncturable PRF [GGM86, BW13, KPTZ13, BGI14]. By the pseudorandomness of 𝖥(1)\mathsf{F}^{(1)} and 𝖥(2)\mathsf{F}^{(2)}, D(6)D^{(6)} is computationally indistinguishable from D(4,i)D^{(4,i^{\ast})}.

There are O(2)O(2^{\ell}) hybrid games between 𝖧𝗒𝖻0\mathsf{Hyb}_{0} and 𝖧𝗒𝖻6\mathsf{Hyb}_{6}. However, if all building blocks are sub-exponentially secure, D(6)D^{(6)} and DD (the original distribution in 𝖧𝗒𝖻0\mathsf{Hyb}_{0}) are computationally indistinguishable since we can set =polylog(λ)\ell={\mathrm{polylog}}(\lambda). Note that we do not need the sub-exponential security for the challenge-only strong γ/2\gamma/2-anti-piracy security of 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} since we do not use the anti-piracy security so far.

Thus, by Theorem 7.10, it holds that

Tr[(𝒯12+γϵ(𝒫1,𝒟(6))𝒯12+γϵ(𝒫2,𝒟(6)))𝓆]\displaystyle\Tr[(\mathpzc{TI}_{\frac{1}{2}+\gamma-\epsilon}(\mathcal{P}_{1,D^{(6)}})\otimes\mathpzc{TI}_{\frac{1}{2}+\gamma-\epsilon}(\mathcal{P}_{2,D^{(6)}}))\mathpzc{q}] (44)
Tr[(𝒯12+γ(𝒫1,𝒟)𝒯12+γ(𝒫2,𝒟))𝓆]δ,\displaystyle\geq\Tr[(\mathpzc{TI}_{\frac{1}{2}+\gamma}(\mathcal{P}_{1,D})\otimes\mathpzc{TI}_{\frac{1}{2}+\gamma}(\mathcal{P}_{2,D}))\mathpzc{q}]-\delta, (45)

where δ\delta is some negligible function. That is, it holds that 𝖠𝖽𝗏6𝖠𝖽𝗏0𝗇𝖾𝗀𝗅(λ)\mathsf{Adv}_{6}\geq\mathsf{Adv}_{0}-{\mathsf{negl}}(\lambda).

We prove the following.

Lemma 7.40.

If 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} is challenge-only strong γ/2\gamma/2-anti-piracy secure, it holds that 𝖠𝖽𝗏6𝗇𝖾𝗀𝗅(λ)\mathsf{Adv}_{6}\leq{\mathsf{negl}}(\lambda).

Proof of Lemma 7.40.

Suppose that 𝖠𝖽𝗏6\mathsf{Adv}_{6} is non-negligible for a contradiction. We construct a QPT algorithm \mathpzc{B} for the strong γ/2\gamma/2-anti-piracy game of 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} by using the adversary 𝒜\mathpzc{A} of the strong γ\gamma-anti-piracy game of 𝖲𝖣𝖥𝖤\mathsf{SDFE} as follows.

  1. 1.

    \mathpzc{B} chooses τ1,,τq,τ{0,1}\tau_{1},\ldots,\tau_{q},\tau^{\ast}\leftarrow\{0,1\}^{\ell} and 𝖪1,𝖪2{0,1}λ\mathsf{K}_{1},\mathsf{K}_{2}\leftarrow\{0,1\}^{\lambda}, and generates 𝖪𝖯𝖱𝖥.𝖦𝖾𝗇(1λ)\mathsf{K}\leftarrow\mathsf{PRF}.\mathsf{Gen}(1^{\lambda}).

  2. 2.

    \mathpzc{B} generates 𝖥τ𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(𝖪,τ)\mathsf{F}_{\neq\tau^{\ast}}\leftarrow\mathsf{Puncture}(\mathsf{K},\tau^{\ast}).

  3. 3.

    \mathpzc{B} receives 𝗉𝗄\mathsf{pk}^{\ast} from its challenger, sets 𝗉𝗄τ𝗉𝗄\mathsf{pk}_{\tau^{\ast}}\coloneqq\mathsf{pk}^{\ast}, and constructs 𝖲𝟣𝖿𝖾[τ,𝖥τ,𝗉𝗄τ]\mathsf{S}^{*}_{\mathsf{1fe}}[\tau^{\ast},\mathsf{F}_{\neq\tau^{\ast}},\allowbreak\mathsf{pk}_{\tau^{\ast}}] described in Figure 6 by choosing τ\tau^{\ast} for the challenge query ff^{\ast}. \mathpzc{B} sets 𝗉𝗄^i𝒪1(𝖲𝟣𝖿𝖾[τ,𝖥τ,𝗉𝗄τ])\widehat{\mathsf{pk}}\coloneqq i\mathcal{O}_{1}(\mathsf{S}^{*}_{\mathsf{1fe}}[\tau^{\ast},\mathsf{F}_{\neq\tau^{\ast}},\mathsf{pk}_{\tau^{\ast}}]) and sends it to 𝒜\mathpzc{A}.

  4. 4.

    When 𝒜\mathpzc{A} sends a key query fif_{i}, \mathpzc{B} generates (𝗉𝗄τi,𝗆𝗌𝗄τi)𝟣𝖲𝖣𝖥𝖤.𝖲𝖾𝗍𝗎𝗉(1λ;𝖯𝖱𝖥𝖪τ(τi))(\mathsf{pk}_{\tau_{i}},\mathsf{msk}_{\tau_{i}})\leftarrow\mathsf{1SDFE}.\mathsf{Setup}(1^{\lambda};\allowbreak\mathsf{PRF}_{\mathsf{K}_{\neq\tau^{\ast}}}(\tau_{i})) and 𝓈𝓀𝒻𝒾,τ𝒾𝟣𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄τ𝒾,𝒻𝒾)\mathpzc{sk}_{f_{i},\tau_{i}}\leftarrow\mathsf{1SDFE}.\mathpzc{QKG}(\mathsf{msk}_{\tau_{i}},f_{i}), sets 𝓈𝓀^fi,τi(τi,𝓈𝓀𝒻𝒾,τ𝒾)\widehat{\mathpzc{sk}}_{f_{i},\tau_{i}}\coloneqq(\tau_{i},\mathpzc{sk}_{f_{i},\tau_{i}}), and sends 𝓈𝓀^fi\widehat{\mathpzc{sk}}_{f_{i}} to 𝒜\mathpzc{A}.

  5. 5.

    When 𝒜\mathpzc{A} sends the challenge query ff^{\ast}, \mathpzc{B} passes it to its challenger and receives 𝓈𝓀𝒻𝟣𝖲𝖣𝖥𝖤.𝒬𝒦𝒢(𝗆𝗌𝗄,𝒻)\mathpzc{sk}_{f^{\ast}}\leftarrow\mathsf{1SDFE}.\mathpzc{QKG}(\mathsf{msk}^{\ast},f^{\ast}), and sends 𝓈𝓀^f(τ,𝓈𝓀𝒻)\widehat{\mathpzc{sk}}_{f^{\ast}}\coloneqq(\tau^{\ast},\mathpzc{sk}_{f^{\ast}}) to 𝒜\mathpzc{A}.

  6. 6.

    Again, \mathpzc{B} can answer key queries fif_{i} from 𝒜\mathpzc{A} as the fourth item.

  7. 7.

    At some point, \mathpzc{B} receives (x0,x1)(x_{0},x_{1}) and two (possibly entangled) quantum decryptors 𝒟1=(𝓆[𝖱1],U1)\mathpzc{D}_{1}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],\boldsymbol{U}_{1}) and 𝒟2=(𝓆[𝖱2],U2)\mathpzc{D}_{2}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],\boldsymbol{U}_{2}), where f(x0)f(x1)f^{*}(x_{0})\neq f^{*}(x_{1}), from 𝒜\mathpzc{A}. For i{1,2}i\in\{1,2\}, let 𝒫i,D(6)\mathcal{P}_{i,D^{(6)}} be the following mixture of projective measurements acting on some quantum state 𝓆\mathpzc{q}^{\prime}:

    • Sample a uniform 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\}.

    • Sample rτ𝖤𝗇𝖼r^{\prime}_{\tau^{\ast}}\leftarrow\mathcal{R}_{\mathsf{Enc}}, 𝖼𝗍τ𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τ,x𝖼𝗈𝗂𝗇;rτ)\mathsf{ct}_{\tau^{\ast}}\leftarrow\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\ast}},x_{\mathsf{coin}};r^{\prime}_{\tau^{\ast}}).

    • Generate r1𝖥𝖪1(1)(𝖼𝗍τ)r_{1}\leftarrow\mathsf{F}^{(1)}_{\mathsf{K}_{1}}(\mathsf{ct}_{\tau^{\ast}}), r2𝖥𝖪2(2)(𝖼𝗍τ)r_{2}\leftarrow\mathsf{F}^{(2)}_{\mathsf{K}_{2}}(\mathsf{ct}_{\tau^{\ast}}), 𝖪𝖯𝖱𝖥.𝖦𝖾𝗇(1λ;r1)\mathsf{K}^{\prime}\leftarrow\mathsf{PRF}.\mathsf{Gen}^{\prime}(1^{\lambda};r_{1}), and 𝖥τ=𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(𝖪,τ)\mathsf{F}^{\prime}_{\neq\tau^{\ast}}=\mathsf{Puncture}^{\prime}(\mathsf{K}^{\prime},\tau^{\ast}).

    • Generate 𝖼𝗍^i𝒪2(𝖤𝟣𝖿𝖾[τ,𝗉𝗄^,𝖥τ,x1,𝖼𝗍τ];r2)\widehat{\mathsf{ct}}\leftarrow i\mathcal{O}_{2}(\mathsf{E}^{\ast\ast}_{\mathsf{1fe}}[\tau^{\ast},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\ast}},x_{1},\mathsf{ct}_{\tau^{\ast}}];r_{2}) where 𝖤𝟣𝖿𝖾\mathsf{E}^{\ast\ast}_{\mathsf{1fe}} is described in Figure 8.

    • Run the quantum decryptor (𝓆,U𝒾)(\mathpzc{q}^{\prime},\boldsymbol{U}_{i}) on input 𝖼𝗍^\widehat{\mathsf{ct}}. If the outcome is 𝖼𝗈𝗂𝗇\mathsf{coin}, output 11. Otherwise, output 0.

  8. 8.

    \mathpzc{B} sets quantum decryptors 𝒟1\mathpzc{D}_{1}^{\ast} and 𝒟2\mathpzc{D}_{2}^{\ast} as follows.

    In this item, we denote pure state |xx|\ket{x}\bra{x} by |x\ket{x} for ease of notation. First, \mathpzc{B} constructs (𝓆[𝖱𝒾],U𝒾)(\mathpzc{q}^{\ast}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}],\boldsymbol{U}_{i}^{\ast}) such that

    • Set 𝓆[𝖱𝒾]𝓆[𝖱𝒾]|0|𝖼𝗍^||τ,𝗉𝗄^,0,𝓍1,𝖪1,𝖪2,0|𝓇1|,0|𝓇2|,0|𝖼𝗍τ\mathpzc{q}^{\ast}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}]\coloneqq\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}]\otimes\ket{0^{\absolutevalue{\widehat{\mathsf{ct}}}}}\otimes\ket{\tau^{\ast},\widehat{\mathsf{pk}},0^{\ell},x_{1},\mathsf{K}_{1},\mathsf{K}_{2},0^{\absolutevalue{r_{1}}},0^{\absolutevalue{r_{2}}},0^{\ell}}\otimes\ket{\mathsf{ct}_{\tau^{\ast}}}. Note that |𝖼𝗍τ\ket{\mathsf{ct}_{\tau^{\ast}}} is the input for (𝓆[𝖱𝒾],U𝒾)(\mathpzc{q}^{\ast}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}],\boldsymbol{U}_{i}^{\ast}).

    • Unitary 𝑼i\boldsymbol{U}^{\ast}_{i} acts on 𝓆[𝖱𝒾]\mathpzc{q}^{\ast}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}] and the result is

      𝓆[𝖱𝒾]𝓆[𝖱𝒾]|𝖼𝗍^|τ,𝗉𝗄^,𝖥τ,𝓍1,𝖪1,𝖪2,𝓇1,𝓇2,𝖪|𝖼𝗍τ,\mathpzc{q}^{\prime}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}]\coloneqq\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}]\otimes\ket{\widehat{\mathsf{ct}}}\otimes\ket{\tau^{\ast},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\ast}},x_{1},\mathsf{K}_{1},\mathsf{K}_{2},r_{1},r_{2},\mathsf{K}^{\prime}}\otimes\ket{\mathsf{ct}_{\tau^{\ast}}},

      where r1𝖥𝖪1(1)(𝖼𝗍τ)r_{1}\coloneqq\mathsf{F}^{(1)}_{\mathsf{K}_{1}}(\mathsf{ct}_{\tau^{\ast}}), r2𝖥𝖪2(2)(𝖼𝗍τ)r_{2}\coloneqq\mathsf{F}^{(2)}_{\mathsf{K}_{2}}(\mathsf{ct}_{\tau^{\ast}}), 𝖪𝖯𝖱𝖥.𝖦𝖾𝗇(1λ;r1)\mathsf{K}^{\prime}\coloneqq\mathsf{PRF}.\mathsf{Gen}^{\prime}(1^{\lambda};r_{1}), 𝖥τ𝖯𝗎𝗇𝖼𝗍𝗎𝗋𝖾(𝖪,τ)\mathsf{F}^{\prime}_{\neq\tau^{\ast}}\coloneqq\mathsf{Puncture}^{\prime}(\mathsf{K}^{\prime},\tau^{\ast}), and 𝖼𝗍^i𝒪2(𝖤𝟣𝖿𝖾[τ,𝗉𝗄^,𝖥τ,x1,𝖼𝗍τ];r2)\widehat{\mathsf{ct}}\coloneqq i\mathcal{O}_{2}(\mathsf{E}^{\ast\ast}_{\mathsf{1fe}}[\tau^{\ast},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\ast}},x_{1},\mathsf{ct}_{\tau^{\ast}}];r_{2}). That is, 𝑼i\boldsymbol{U}_{i}^{\ast} constructs 𝖤𝟣𝖿𝖾[τ,𝗉𝗄^,𝖥τ,x1,𝖼𝗍τ]\mathsf{E}^{\ast\ast}_{\mathsf{1fe}}[\tau^{\ast},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\ast}},x_{1},\mathsf{ct}_{\tau^{\ast}}] described in Figure 8 and generates 𝖼𝗍^i𝒪2(𝖤𝟣𝖿𝖾[τ,𝗉𝗄^,𝖥τ,x1,𝖼𝗍τ];r2)\widehat{\mathsf{ct}}\coloneqq i\mathcal{O}_{2}(\mathsf{E}^{\ast\ast}_{\mathsf{1fe}}[\tau^{\ast},\widehat{\mathsf{pk}},\mathsf{F}^{\prime}_{\neq\tau^{\ast}},x_{1},\mathsf{ct}_{\tau^{\ast}}];r_{2}). Note that \mathpzc{B} can construct it since \mathpzc{B} has τ\tau^{\ast}, 𝗉𝗄^\widehat{\mathsf{pk}}, 𝖪1\mathsf{K}_{1}, 𝖪2\mathsf{K}_{2}, and x1x_{1}.

    It is easy to see that if we apply (𝑼i𝑰)(\boldsymbol{U}_{i}\otimes\boldsymbol{I}) to 𝓆[𝖱𝒾]\mathpzc{q}^{\prime}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}], we obtain an output of 𝒟𝒾\mathpzc{D}_{i} for input 𝖼𝗍^\widehat{\mathsf{ct}}. Thus, \mathpzc{B} sets 𝒟1(𝓆[𝖱1],(U1I)U1)\mathpzc{D}_{1}^{\ast}\coloneqq(\mathpzc{q}^{\ast}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],(\boldsymbol{U}_{1}\otimes\boldsymbol{I})\boldsymbol{U}_{1}^{\ast}) and 𝒟2(𝓆[𝖱2],(U2I)U2)\mathpzc{D}_{2}^{\ast}\coloneqq(\mathpzc{q}^{\ast}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],(\boldsymbol{U}_{2}\otimes\boldsymbol{I})\boldsymbol{U}_{2}^{\ast}). \mathpzc{B} sends (x0,x1)(x_{0},x_{1}) and 𝒟1\mathpzc{D}_{1}^{\ast} and 𝒟2\mathpzc{D}_{2}^{\ast} to its challenger.

The challenger of 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE} runs the test by using the following. Let 𝒫i,D\mathcal{P}_{i,D^{\prime}} be the following mixture of projective measurements acting on some quantum state 𝓆𝟣𝖲𝖣𝖥𝖤\mathpzc{q}_{\mathsf{1SDFE}}:

  • Sample a uniformly random 𝖼𝗈𝗂𝗇{0,1}\mathsf{coin}\leftarrow\{0,1\} and compute 𝖼𝗍τ𝟣𝖲𝖣𝖥𝖤.𝖤𝗇𝖼(𝗉𝗄τ,x𝖼𝗈𝗂𝗇)\mathsf{ct}_{\tau^{\ast}}\leftarrow\mathsf{1SDFE}.\mathsf{Enc}(\mathsf{pk}_{\tau^{\ast}},\allowbreak x_{\mathsf{coin}}).

  • Run 𝖼𝗈𝗂𝗇𝒟(𝖼𝗍)\mathsf{coin}^{\prime}\leftarrow\mathpzc{D}^{\ast}(\mathsf{ct}). If 𝖼𝗈𝗂𝗇=𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime}=\mathsf{coin}, output 11, otherwise output 0.

By the construction of 𝑼i\boldsymbol{U}_{i}^{\ast}, quantum decryptor 𝒟𝒾\mathpzc{D}_{i}^{\ast} takes a ciphertext 𝖼𝗍τ\mathsf{ct}_{\tau^{\ast}} under 𝗉𝗄τ\mathsf{pk}_{\tau^{\ast}} as input, converts it into a ciphertext 𝖼𝗍^\widehat{\mathsf{ct}} of 𝖲𝖣𝖥𝖤\mathsf{SDFE}, and apply the quantum decryptor 𝒟𝒾\mathpzc{D}_{i} from 𝒜\mathpzc{A}. The converted ciphertext 𝖼𝗍^\widehat{\mathsf{ct}} perfectly simulates a ciphertext in 𝖧𝗒𝖻6\mathsf{Hyb}_{6} if an input to 𝒟𝒾\mathpzc{D}_{i}^{\ast} is a ciphertext under 𝗉𝗄τ\mathsf{pk}_{\tau^{\ast}}.

We assumed that 𝖠𝖽𝗏6\mathsf{Adv}_{6} is non-negligible at the beginning of this proof. That is, applying 𝒯12+γϵ(𝒫𝒾,𝒟(6))\mathpzc{TI}_{\frac{1}{2}+\gamma-\epsilon}(\mathcal{P}_{i,D^{(6)}}) on 𝓆[𝖱𝒾]\mathpzc{q}^{\ast}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}] results in two outcomes 11 with non-negligible probability. That is, it holds that

Tr[𝒯12+γϵ(𝒫1,𝒟(6))𝒯12+γϵ(𝒫2,𝒟(6))𝓆]>𝗇𝖾𝗀𝗅(λ).\displaystyle\Tr[\mathpzc{TI}_{\frac{1}{2}+\gamma-\epsilon}(\mathcal{P}_{1,D^{(6)}})\otimes\mathpzc{TI}_{\frac{1}{2}+\gamma-\epsilon}(\mathcal{P}_{2,D^{(6)}})\mathpzc{q}^{\ast}]>{\mathsf{negl}}(\lambda). (46)

This means that for i{1,2}i\in\{1,2\}, 𝓆[𝖱𝒾]\mathpzc{q}^{\ast}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{i}] is a (γϵ)(\gamma-\epsilon)-good distinguisher with respect to ciphertexts generated according to D(6)D^{(6)}.

Thus, if 𝒟𝒾\mathpzc{D}_{i} works as a (γϵ)(\gamma-\epsilon)-good quantum distinguisher for 𝖲𝖣𝖥𝖤\mathsf{SDFE}, 𝒟𝒾\mathpzc{D}_{i}^{\ast} works as a (γϵ)(\gamma-\epsilon)-good quantum distinguisher for 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE}, where ϵ=γ2\epsilon=\frac{\gamma}{2}. This completes the proof of Lemma 7.40.   

By using the relationships among 𝖠𝖽𝗏𝖲𝖣𝖥𝖤,𝒜\mathsf{Adv}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{}}, 𝖠𝖽𝗏xi\mathsf{Adv}_{x}^{i} for x{1,,5}x\in\{1,\cdots,5\} and i[Ii]i\in[I_{i^{\ast}}], 𝖠𝖽𝗏xi\mathsf{Adv}_{x}^{i^{\ast}} for x{1,,4}x\in\{1,\cdots,4\}, and 𝖠𝖽𝗏6\mathsf{Adv}_{6} that we show above, we obtain 𝖠𝖽𝗏𝖲𝖣𝖥𝖤,𝒜𝗌𝗍𝗋𝗈𝗇𝗀-𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒(λ,γ)𝗇𝖾𝗀𝗅(λ)\mathsf{Adv}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{strong}\mbox{-}\mathsf{anti}\mbox{-}\mathsf{piracy}}(\lambda,\gamma)\leq{\mathsf{negl}}(\lambda). We almost complete the proof of Theorem 7.39. Lastly, we need to set the padding parameters for IO security.

Padding Parameter.

The proof of security relies on the indistinguishability of obfuscated 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}} and 𝖲𝟣𝖿𝖾\mathsf{S}^{*}_{\mathsf{1fe}} defined in Figures 2 and 6, and that of obfuscated 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}}, 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}}^{\ast}, and 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}}^{\ast\ast} defined in Figures 3, 7 and 8. Accordingly, we set 𝗉𝖺𝖽𝖲max(|𝖲𝟣𝖿𝖾|,|𝖲𝟣𝖿𝖾|)\mathsf{pad}_{\mathsf{S}}\coloneqq\max(\absolutevalue{\mathsf{S}_{\mathsf{1fe}}},\absolutevalue{\mathsf{S}_{\mathsf{1fe}}^{*}}) and 𝗉𝖺𝖽𝖤max(|𝖤𝟣𝖿𝖾|,|𝖤𝟣𝖿𝖾|,|𝖤𝟣𝖿𝖾|)\mathsf{pad}_{\mathsf{E}}\coloneqq\max(\absolutevalue{\mathsf{E}_{\mathsf{1fe}}},\absolutevalue{\mathsf{E}_{\mathsf{1fe}}^{*}},\absolutevalue{\mathsf{E}_{\mathsf{1fe}}^{\ast\ast}}).

The circuits 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}} and 𝖲𝟣𝖿𝖾\mathsf{S}_{\mathsf{1fe}}^{*} compute a puncturable PRF over domain {0,1}\{0,1\}^{\ell} and a key pair of 𝟣𝖥𝖤\mathsf{1FE}, and may have punctured PRF keys and a public key hardwired. The circuits 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}}, 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}}^{*}, and 𝖤𝟣𝖿𝖾\mathsf{E}_{\mathsf{1fe}}^{\ast\ast} run the circuit 𝗉𝗄^\widehat{\mathsf{pk}} and compute a puncturable PRF over domain {0,1}\{0,1\}^{\ell} and a ciphertext of 𝟣𝖲𝖣𝖥𝖤\mathsf{1SDFE}, and may have punctured PRF keys, tags, plaintexts, and a hard-wired ciphertext. Note that \ell is a polynomial of λ\lambda. Thus, it holds that

𝗉𝖺𝖽𝖲\displaystyle\mathsf{pad}_{\mathsf{S}} poly(λ,n,s),\displaystyle\leq{\mathrm{poly}}(\lambda,n,s), (47)
𝗉𝖺𝖽𝖤\displaystyle\mathsf{pad}_{\mathsf{E}} poly(λ,n,s,|𝗉𝗄^|).\displaystyle\leq{\mathrm{poly}}(\lambda,n,s,\absolutevalue{\widehat{\mathsf{pk}}}). (48)

Therefore, we complete the proof of Theorem 7.39.   

We obtain the following corollary from Corollaries 7.34, 7.37 and 7.39.

Corollary 7.41.

Assuming the existence of sub-exponentially secure IO for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly}, and the sub-exponential hardness of QLWE, there exists an SDFE scheme for 𝖯/𝗉𝗈𝗅𝗒\mathsf{P}/\mathsf{poly} that satisfies adaptive security (Definition 7.28) and strong γ\gamma-anti-piracy security for any inverse polynomial γ\gamma.

References

  • [Aar09] Scott Aaronson. Quantum copy-protection and quantum money. In Proceedings of the 24th Annual IEEE Conference on Computational Complexity, CCC 2009, Paris, France, 15-18 July 2009, pages 229–242. IEEE Computer Society, 2009.
  • [ABDP15] Michel Abdalla, Florian Bourse, Angelo De Caro, and David Pointcheval. Simple functional encryption schemes for inner products. In Jonathan Katz, editor, PKC 2015, volume 9020 of LNCS, pages 733–751. Springer, Heidelberg, March / April 2015.
  • [ABSV15] Prabhanjan Ananth, Zvika Brakerski, Gil Segev, and Vinod Vaikuntanathan. From selective to adaptive security in functional encryption. In Rosario Gennaro and Matthew J. B. Robshaw, editors, CRYPTO 2015, Part II, volume 9216 of LNCS, pages 657–677. Springer, Heidelberg, August 2015.
  • [AGKZ20] Ryan Amos, Marios Georgiou, Aggelos Kiayias, and Mark Zhandry. One-shot signatures and applications to hybrid quantum/classical authentication. In Konstantin Makarychev, Yury Makarychev, Madhur Tulsiani, Gautam Kamath, and Julia Chuzhoy, editors, 52nd ACM STOC, pages 255–268. ACM Press, June 2020.
  • [AJ15] Prabhanjan Ananth and Abhishek Jain. Indistinguishability obfuscation from compact functional encryption. In Rosario Gennaro and Matthew J. B. Robshaw, editors, CRYPTO 2015, Part I, volume 9215 of LNCS, pages 308–326. Springer, Heidelberg, August 2015.
  • [AJL+19] Prabhanjan Ananth, Aayush Jain, Huijia Lin, Christian Matt, and Amit Sahai. Indistinguishability obfuscation without multilinear maps: New paradigms via low degree weak pseudorandomness and security amplification. In Alexandra Boldyreva and Daniele Micciancio, editors, CRYPTO 2019, Part III, volume 11694 of LNCS, pages 284–332. Springer, Heidelberg, August 2019.
  • [AJS15] Prabhanjan Ananth, Abhishek Jain, and Amit Sahai. Indistinguishability obfuscation from functional encryption for simple functions. Cryptology ePrint Archive, Report 2015/730, 2015. https://eprint.iacr.org/2015/730.
  • [AL21] Prabhanjan Ananth and Rolando L. La Placa. Secure software leasing. In Anne Canteaut and François-Xavier Standaert, editors, EUROCRYPT 2021, Part II, volume 12697 of LNCS, pages 501–530. Springer, Heidelberg, October 2021.
  • [ALL+21] Scott Aaronson, Jiahui Liu, Qipeng Liu, Mark Zhandry, and Ruizhe Zhang. New approaches for quantum copy-protection. In Tal Malkin and Chris Peikert, editors, CRYPTO 2021, Part I, volume 12825 of LNCS, pages 526–555, Virtual Event, August 2021. Springer, Heidelberg.
  • [ALS16] Shweta Agrawal, Benoît Libert, and Damien Stehlé. Fully secure functional encryption for inner products, from standard assumptions. In Matthew Robshaw and Jonathan Katz, editors, CRYPTO 2016, Part III, volume 9816 of LNCS, pages 333–362. Springer, Heidelberg, August 2016.
  • [AMVY21] Shweta Agrawal, Monosij Maitra, Narasimha Sai Vempati, and Shota Yamada. Functional encryption for turing machines with dynamic bounded collusion from LWE. In Tal Malkin and Chris Peikert, editors, CRYPTO 2021, Part IV, volume 12828 of LNCS, pages 239–269, Virtual Event, August 2021. Springer, Heidelberg.
  • [AP20] Shweta Agrawal and Alice Pellet-Mary. Indistinguishability obfuscation without maps: Attacks and fixes for noisy linear FE. In Anne Canteaut and Yuval Ishai, editors, EUROCRYPT 2020, Part I, volume 12105 of LNCS, pages 110–140. Springer, Heidelberg, May 2020.
  • [AR17] Shweta Agrawal and Alon Rosen. Functional encryption for bounded collusions, revisited. In Yael Kalai and Leonid Reyzin, editors, TCC 2017, Part I, volume 10677 of LNCS, pages 173–205. Springer, Heidelberg, November 2017.
  • [AV19] Prabhanjan Ananth and Vinod Vaikuntanathan. Optimal bounded-collusion secure functional encryption. In Dennis Hofheinz and Alon Rosen, editors, TCC 2019, Part I, volume 11891 of LNCS, pages 174–198. Springer, Heidelberg, December 2019.
  • [BGI+12] Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil P. Vadhan, and Ke Yang. On the (im)possibility of obfuscating programs. Journal of the ACM, 59(2):6:1–6:48, 2012.
  • [BGI14] Elette Boyle, Shafi Goldwasser, and Ioana Ivan. Functional signatures and pseudorandom functions. In Hugo Krawczyk, editor, PKC 2014, volume 8383 of LNCS, pages 501–519. Springer, Heidelberg, March 2014.
  • [BGMZ18] James Bartusek, Jiaxin Guan, Fermi Ma, and Mark Zhandry. Return of GGH15: Provable security against zeroizing attacks. In Amos Beimel and Stefan Dziembowski, editors, TCC 2018, Part II, volume 11240 of LNCS, pages 544–574. Springer, Heidelberg, November 2018.
  • [BI20] Anne Broadbent and Rabib Islam. Quantum encryption with certified deletion. In Rafael Pass and Krzysztof Pietrzak, editors, TCC 2020, Part III, volume 12552 of LNCS, pages 92–122. Springer, Heidelberg, November 2020.
  • [BJL+21] Anne Broadbent, Stacey Jeffery, Sébastien Lord, Supartha Podder, and Aarthi Sundaram. Secure software leasing without assumptions. In Kobbi Nissim and Brent Waters, editors, TCC 2021, Part I, volume 13042 of LNCS, pages 90–120. Springer, Heidelberg, November 2021.
  • [BNPW20] Nir Bitansky, Ryo Nishimaki, Alain Passelègue, and Daniel Wichs. From cryptomania to obfustopia through secret-key functional encryption. Journal of Cryptology, 33(2):357–405, April 2020.
  • [BS17] Shalev Ben-David and Or Sattath. Quantum tokens for digital signatures. Cryptology ePrint Archive, Report 2017/094, 2017. https://eprint.iacr.org/2017/094.
  • [BS18] Zvika Brakerski and Gil Segev. Function-private functional encryption in the private-key setting. Journal of Cryptology, 31(1):202–225, January 2018.
  • [BSW11] Dan Boneh, Amit Sahai, and Brent Waters. Functional encryption: Definitions and challenges. In Yuval Ishai, editor, TCC 2011, volume 6597 of LNCS, pages 253–273. Springer, Heidelberg, March 2011.
  • [BV11] Zvika Brakerski and Vinod Vaikuntanathan. Fully homomorphic encryption from ring-LWE and security for key dependent messages. In Phillip Rogaway, editor, CRYPTO 2011, volume 6841 of LNCS, pages 505–524. Springer, Heidelberg, August 2011.
  • [BV18] Nir Bitansky and Vinod Vaikuntanathan. Indistinguishability obfuscation from functional encryption. Journal of the ACM, 65(6):39:1–39:37, 2018.
  • [BW13] Dan Boneh and Brent Waters. Constrained pseudorandom functions and their applications. In Kazue Sako and Palash Sarkar, editors, ASIACRYPT 2013, Part II, volume 8270 of LNCS, pages 280–300. Springer, Heidelberg, December 2013.
  • [CGO21] Michele Ciampi, Vipul Goyal, and Rafail Ostrovsky. Threshold garbled circuits and ad hoc secure computation. In Anne Canteaut and François-Xavier Standaert, editors, EUROCRYPT 2021, Part III, volume 12698 of LNCS, pages 64–93. Springer, Heidelberg, October 2021.
  • [CHVW19] Yilei Chen, Minki Hhan, Vinod Vaikuntanathan, and Hoeteck Wee. Matrix PRFs: Constructions, attacks, and applications to obfuscation. In Dennis Hofheinz and Alon Rosen, editors, TCC 2019, Part I, volume 11891 of LNCS, pages 55–80. Springer, Heidelberg, December 2019.
  • [CLLZ21] Andrea Coladangelo, Jiahui Liu, Qipeng Liu, and Mark Zhandry. Hidden cosets and applications to unclonable cryptography. In Tal Malkin and Chris Peikert, editors, CRYPTO 2021, Part I, volume 12825 of LNCS, pages 556–584, Virtual Event, August 2021. Springer, Heidelberg.
  • [CMP20] Andrea Coladangelo, Christian Majenz, and Alexander Poremba. Quantum copy-protection of compute-and-compare programs in the quantum random oracle model. Cryptology ePrint Archive, Report 2020/1194, 2020. https://eprint.iacr.org/2020/1194.
  • [CS19] R. Joseph Connor and Max Schuchard. Blind bernoulli trials: A noninteractive protocol for hidden-weight coin flips. In Nadia Heninger and Patrick Traynor, editors, USENIX Security 2019, pages 1483–1500. USENIX Association, August 2019.
  • [CV21] Eric Culf and Thomas Vidick. A monogamy-of-entanglement game for subspace coset states. arXiv (CoRR), abs/2107.13324, 2021.
  • [DIJ+13] Angelo De Caro, Vincenzo Iovino, Abhishek Jain, Adam O’Neill, Omer Paneth, and Giuseppe Persiano. On the achievability of simulation-based security for functional encryption. In Ran Canetti and Juan A. Garay, editors, CRYPTO 2013, Part II, volume 8043 of LNCS, pages 519–535. Springer, Heidelberg, August 2013.
  • [DQV+21] Lalita Devadas, Willy Quach, Vinod Vaikuntanathan, Hoeteck Wee, and Daniel Wichs. Succinct LWE sampling, random polynomials, and obfuscation. In Kobbi Nissim and Brent Waters, editors, TCC 2021, Part II, volume 13043 of LNCS, pages 256–287. Springer, Heidelberg, November 2021.
  • [GGH+16] Sanjam Garg, Craig Gentry, Shai Halevi, Mariana Raykova, Amit Sahai, and Brent Waters. Candidate indistinguishability obfuscation and functional encryption for all circuits. SIAM Journal on Computing, 45(3):882–929, 2016.
  • [GGHW17] Sanjam Garg, Craig Gentry, Shai Halevi, and Daniel Wichs. On the implausibility of differing-inputs obfuscation and extractable witness encryption with auxiliary input. Algorithmica, 79(4):1353–1373, 2017.
  • [GGLW21] Rachit Garg, Rishab Goyal, George Lu, and Brent Waters. Dynamic collusion bounded functional encryption from identity-based encryption. Cryptology ePrint Archive, Report 2021/847, 2021. https://eprint.iacr.org/2021/847.
  • [GGM86] Oded Goldreich, Shafi Goldwasser, and Silvio Micali. How to construct random functions. Journal of the ACM, 33(4):792–807, 1986.
  • [GKP+13] Shafi Goldwasser, Yael Tauman Kalai, Raluca A. Popa, Vinod Vaikuntanathan, and Nickolai Zeldovich. How to run turing machines on encrypted data. In Ran Canetti and Juan A. Garay, editors, CRYPTO 2013, Part II, volume 8043 of LNCS, pages 536–553. Springer, Heidelberg, August 2013.
  • [GKW17] Rishab Goyal, Venkata Koppula, and Brent Waters. Lockable obfuscation. In Chris Umans, editor, 58th FOCS, pages 612–621. IEEE Computer Society Press, October 2017.
  • [GVW12] Sergey Gorbunov, Vinod Vaikuntanathan, and Hoeteck Wee. Functional encryption with bounded collusions via multi-party computation. In Reihaneh Safavi-Naini and Ran Canetti, editors, CRYPTO 2012, volume 7417 of LNCS, pages 162–179. Springer, Heidelberg, August 2012.
  • [GZ20] Marios Georgiou and Mark Zhandry. Unclonable decryption keys. Cryptology ePrint Archive, Report 2020/877, 2020. https://eprint.iacr.org/2020/877.
  • [HMNY21] Taiga Hiroka, Tomoyuki Morimae, Ryo Nishimaki, and Takashi Yamakawa. Quantum encryption with certified deletion, revisited: Public key, attribute-based, and classical communication. In Mehdi Tibouchi and Huaxiong Wang, editors, ASIACRYPT 2021, Part I, volume 13090 of LNCS, pages 606–636. Springer, Heidelberg, December 2021.
  • [JKMS20] Aayush Jain, Alexis Korb, Nathan Manohar, and Amit Sahai. Amplifying the security of functional encryption, unconditionally. In Daniele Micciancio and Thomas Ristenpart, editors, CRYPTO 2020, Part I, volume 12170 of LNCS, pages 717–746. Springer, Heidelberg, August 2020.
  • [JLS21] Aayush Jain, Huijia Lin, and Amit Sahai. Indistinguishability obfuscation from well-founded assumptions. In Samir Khuller and Virginia Vassilevska Williams, editors, STOC 2021, pages 60–73. ACM, 2021.
  • [JLS22] Aayush Jain, Huijia Lin, and Amit Sahai. Indistinguishability obfuscation from LPN over 𝔽p\mathbb{F}_{p}, DLIN, and PRGs in NC0{NC}^{0}. In Orr Dunkelman and Stefan Dziembowski, editors, EUROCRYPT 2022, Part I, volume 13275 of LNCS, pages 670–699. Springer, Heidelberg, May / June 2022.
  • [KLM+18] Sam Kim, Kevin Lewi, Avradip Mandal, Hart Montgomery, Arnab Roy, and David J. Wu. Function-hiding inner product encryption is practical. In Dario Catalano and Roberto De Prisco, editors, SCN 18, volume 11035 of LNCS, pages 544–562. Springer, Heidelberg, September 2018.
  • [KNT21] Fuyuki Kitagawa, Ryo Nishimaki, and Keisuke Tanaka. Simple and generic constructions of succinct functional encryption. Journal of Cryptology, 34(3):25, July 2021.
  • [KNT22] Fuyuki Kitagawa, Ryo Nishimaki, and Keisuke Tanaka. Obfustopia built on secret-key functional encryption. J. Cryptol., 35(3):19, 2022.
  • [KNY21] Fuyuki Kitagawa, Ryo Nishimaki, and Takashi Yamakawa. Secure software leasing from standard assumptions. In Kobbi Nissim and Brent Waters, editors, TCC 2021, Part I, volume 13042 of LNCS, pages 31–61. Springer, Heidelberg, November 2021.
  • [KPTZ13] Aggelos Kiayias, Stavros Papadopoulos, Nikos Triandopoulos, and Thomas Zacharias. Delegatable pseudorandom functions and applications. In Ahmad-Reza Sadeghi, Virgil D. Gligor, and Moti Yung, editors, ACM CCS 2013, pages 669–684. ACM Press, November 2013.
  • [MW16] Pratyay Mukherjee and Daniel Wichs. Two round multiparty computation via multi-key FHE. In Marc Fischlin and Jean-Sébastien Coron, editors, EUROCRYPT 2016, Part II, volume 9666 of LNCS, pages 735–763. Springer, Heidelberg, May 2016.
  • [NNL01] Dalit Naor, Moni Naor, and Jeffery Lotspiech. Revocation and tracing schemes for stateless receivers. In Joe Kilian, editor, CRYPTO 2001, volume 2139 of LNCS, pages 41–62. Springer, Heidelberg, August 2001.
  • [NP01] Moni Naor and Benny Pinkas. Efficient trace and revoke schemes. In Yair Frankel, editor, FC 2000, volume 1962 of LNCS, pages 1–20. Springer, Heidelberg, February 2001.
  • [NWZ16] Ryo Nishimaki, Daniel Wichs, and Mark Zhandry. Anonymous traitor tracing: How to embed arbitrary information in a key. In Marc Fischlin and Jean-Sébastien Coron, editors, EUROCRYPT 2016, Part II, volume 9666 of LNCS, pages 388–419. Springer, Heidelberg, May 2016.
  • [RPB+19] Théo Ryffel, David Pointcheval, Francis R. Bach, Edouard Dufour-Sans, and Romain Gay. Partially encrypted deep learning using functional encryption. In Hanna M. Wallach, Hugo Larochelle, Alina Beygelzimer, Florence d’Alché-Buc, Emily B. Fox, and Roman Garnett, editors, NeurIPS 2019, pages 4519–4530, 2019.
  • [SS10] Amit Sahai and Hakan Seyalioglu. Worry-free encryption: functional encryption with public keys. In Ehab Al-Shaer, Angelos D. Keromytis, and Vitaly Shmatikov, editors, ACM CCS 2010, pages 463–472. ACM Press, October 2010.
  • [SSW12] Amit Sahai, Hakan Seyalioglu, and Brent Waters. Dynamic credentials and ciphertext delegation for attribute-based encryption. In Reihaneh Safavi-Naini and Ran Canetti, editors, CRYPTO 2012, volume 7417 of LNCS, pages 199–217. Springer, Heidelberg, August 2012.
  • [SW05] Amit Sahai and Brent R. Waters. Fuzzy identity-based encryption. In Ronald Cramer, editor, EUROCRYPT 2005, volume 3494 of LNCS, pages 457–473. Springer, Heidelberg, May 2005.
  • [SW21] Amit Sahai and Brent Waters. How to use indistinguishability obfuscation: Deniable encryption, and more. SIAM J. Comput., 50(3):857–908, 2021.
  • [WZ17] Daniel Wichs and Giorgos Zirdelis. Obfuscating compute-and-compare programs under LWE. In Chris Umans, editor, 58th FOCS, pages 600–611. IEEE Computer Society Press, October 2017.
  • [Zha20] Mark Zhandry. Schrödinger’s pirate: How to trace a quantum decoder. In Rafael Pass and Krzysztof Pietrzak, editors, TCC 2020, Part III, volume 12552 of LNCS, pages 61–91. Springer, Heidelberg, November 2020.

Appendix A CPA-Style Anti-Piracy Security Notions

We introduce the CPA-style anti-piracy security for SDE.

Definition A.1 (Anti-Piracy Security, CPA-Style [CLLZ21]).

We consider the CPA-style anti-piracy game 𝖤𝗑𝗉𝖲𝖣𝖤,𝒜𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒-𝖼𝗉𝖺(λ)\mathsf{Exp}_{\mathsf{SDE},\mathpzc{A}}^{\mathsf{anti}\mbox{-}\mathsf{piracy}\mbox{-}\mathsf{cpa}}(\lambda) between the challenger and an adversary 𝒜\mathpzc{A} below.

  1. 1.

    The challenger generates (𝗉𝗄,𝗌𝗄)𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{pk},\mathsf{sk})\leftarrow\mathsf{Setup}(1^{\lambda}).

  2. 2.

    The challenger generates 𝓈𝓀𝒬𝒦𝒢(𝗌𝗄)\mathpzc{sk}\leftarrow\mathpzc{QKG}(\mathsf{sk}) and sends (𝗉𝗄,𝓈𝓀)(\mathsf{pk},\mathpzc{sk}) to 𝒜\mathpzc{A}.

  3. 3.

    𝒜\mathpzc{A} outputs (m0,m1)(m_{0},m_{1}) and two (possibly entangled) quantum decryptors 𝒟1=(𝓆[𝖱1],U1)\mathpzc{D}_{1}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],\boldsymbol{U}_{1}) and 𝒟2=(𝓆[𝖱2],U2)\mathpzc{D}_{2}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],\boldsymbol{U}_{2}), where m0m1m_{0}\neq m_{1}, |m0|=|m1|\absolutevalue{m_{0}}=\absolutevalue{m_{1}}, 𝓆\mathpzc{q} is a quantum state over registers 𝖱1{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1} and 𝖱2{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}, and 𝑼1\boldsymbol{U}_{1} and 𝑼2\boldsymbol{U}_{2} are general quantum circuits.

  4. 4.

    The challenger chooses 𝖼𝗈𝗂𝗇1,𝖼𝗈𝗂𝗇2{0,1}\mathsf{coin}_{1},\mathsf{coin}_{2}\leftarrow\{0,1\}, and generates 𝖼𝗍1𝖤𝗇𝖼(𝗉𝗄,m𝖼𝗈𝗂𝗇1)\mathsf{ct}_{1}\leftarrow\mathsf{Enc}(\mathsf{pk},m_{\mathsf{coin}_{1}}) and 𝖼𝗍2𝖤𝗇𝖼(𝗉𝗄,m𝖼𝗈𝗂𝗇2)\mathsf{ct}_{2}\leftarrow\mathsf{Enc}(\mathsf{pk},m_{\mathsf{coin}_{2}}). The challenger runs mi𝒟𝒾(𝖼𝗍𝒾)m_{i}^{\prime}\leftarrow\mathpzc{D}_{i}(\mathsf{ct}_{i}) for i{1,2}i\in\{1,2\}. If mi=m𝖼𝗈𝗂𝗇im_{i}^{\prime}=m_{\mathsf{coin}_{i}} for i{1,2}i\in\{1,2\}, the challenger outputs 11, otherwise outputs 0.

We say that 𝖲𝖣𝖤\mathsf{SDE} is γ\gamma-anti-piracy secure if for any QPT adversary 𝒜\mathpzc{A}, it satisfies that

Pr[𝖤𝗑𝗉𝖲𝖣𝖤,𝒜𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒-𝖼𝗉𝖺(λ)=1]12+γ(λ)+𝗇𝖾𝗀𝗅(λ).\Pr[\mathsf{Exp}_{\mathsf{SDE},\mathpzc{A}}^{\mathsf{anti}\mbox{-}\mathsf{piracy}\mbox{-}\mathsf{cpa}}(\lambda)=1]\leq\frac{1}{2}+\gamma(\lambda)+{\mathsf{negl}}(\lambda).
Theorem A.2 ([CLLZ21]).

If an SDE scheme satisfies strong γ\gamma-anti-piracy security, it also satisfies γ\gamma-anti-piracry security (in the CPA-style).

We can define a similar security notion for SDFE.

Definition A.3 (Anti-Piracy Security for FE, CPA-Style).

We consider the CPA-style anti-piracy game for FE 𝖤𝗑𝗉𝖲𝖣𝖥𝖤,𝒜𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒-𝖼𝗉𝖺(λ)\mathsf{Exp}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{anti}\mbox{-}\mathsf{piracy}\mbox{-}\mathsf{cpa}}(\lambda) between the challenger and an adversary 𝒜\mathpzc{A} below.

  1. 1.

    The challenger generates (𝗉𝗄,𝗆𝗌𝗄)𝖲𝖾𝗍𝗎𝗉(1λ)(\mathsf{pk},\mathsf{msk})\leftarrow\mathsf{Setup}(1^{\lambda}) and sends 𝗉𝗄\mathsf{pk} to 𝒜\mathpzc{A}.

  2. 2.

    𝒜\mathpzc{A} sends key queries fif_{i} to the challenger and receives 𝓈𝓀𝒻𝒾𝒬𝒦𝒢(𝗌𝗄𝒻𝒾)\mathpzc{sk}_{f_{i}}\leftarrow\mathpzc{QKG}(\mathsf{sk}_{f_{i}}) where 𝗌𝗄fi𝖪𝖦(𝗆𝗌𝗄,fi)\mathsf{sk}_{f_{i}}\leftarrow\mathsf{KG}(\mathsf{msk},f_{i}).

  3. 3.

    At some point 𝒜\mathpzc{A} sends a challenge query ff^{*} to the challenger and receives 𝓈𝓀𝒻𝒬𝒦𝒢(𝗆𝗌𝗄,𝒻)\mathpzc{sk}_{f^{*}}\leftarrow\mathpzc{QKG}(\mathsf{msk},f^{\ast}).

  4. 4.

    Again, 𝒜\mathpzc{A} sends fif_{i} to the challenger and receives 𝓈𝓀𝒻𝒾𝒬𝒦𝒢(𝗌𝗄𝒻𝒾)\mathpzc{sk}_{f_{i}}\leftarrow\mathpzc{QKG}(\mathsf{sk}_{f_{i}}) where 𝗌𝗄fi𝖪𝖦(𝗆𝗌𝗄,fi)\mathsf{sk}_{f_{i}}\leftarrow\mathsf{KG}(\mathsf{msk},f_{i}).

  5. 5.

    𝒜\mathpzc{A} outputs (x0,x1)(x_{0},x_{1}) and two (possibly entangled) quantum decryptors 𝒟1=(𝓆[𝖱1],U1)\mathpzc{D}_{1}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1}],\boldsymbol{U}_{1}) and 𝒟2=(𝓆[𝖱2],U2)\mathpzc{D}_{2}=(\mathpzc{q}[{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}],\boldsymbol{U}_{2}), where ifi(x0)=fi(x1)\forall i\ f_{i}(x_{0})=f_{i}(x_{1}), f(x0)f(x1)f^{*}(x_{0})\neq f^{*}(x_{1}), 𝓆\mathpzc{q} is a quantum state over registers 𝖱1{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{1} and 𝖱2{\color[rgb]{.5,.5,.5}\definecolor[named]{pgfstrokecolor}{rgb}{.5,.5,.5}\pgfsys@color@gray@stroke{.5}\pgfsys@color@gray@fill{.5}{\mathsf{R}}}_{2}, and 𝑼1\boldsymbol{U}_{1} and 𝑼2\boldsymbol{U}_{2} are general quantum circuits.

  6. 6.

    The challenger chooses 𝖼𝗈𝗂𝗇1,𝖼𝗈𝗂𝗇2{0,1}\mathsf{coin}_{1},\mathsf{coin}_{2}\leftarrow\{0,1\}, and generates 𝖼𝗍1𝖤𝗇𝖼(𝗉𝗄,x𝖼𝗈𝗂𝗇1)\mathsf{ct}_{1}\leftarrow\mathsf{Enc}(\mathsf{pk},x_{\mathsf{coin}_{1}}) and 𝖼𝗍2𝖤𝗇𝖼(𝗉𝗄,x𝖼𝗈𝗂𝗇2)\mathsf{ct}_{2}\leftarrow\mathsf{Enc}(\mathsf{pk},x_{\mathsf{coin}_{2}}). The challenger runs 𝖼𝗈𝗂𝗇k𝒟𝓀(𝖼𝗍𝓀)\mathsf{coin}_{k}^{\prime}\leftarrow\mathpzc{D}_{k}(\mathsf{ct}_{k}) for k{1,2}k\in\{1,2\}. If 𝖼𝗈𝗂𝗇k=𝖼𝗈𝗂𝗇k\mathsf{coin}_{k}^{\prime}=\mathsf{coin}_{k} for k{1,2}k\in\{1,2\}, the challenger outputs 11, otherwise outputs 0.

We say that 𝖲𝖣𝖥𝖤\mathsf{SDFE} is γ\gamma-anti-piracy secure if for any QPT adversary 𝒜\mathpzc{A}, it satisfies that

Pr[𝖤𝗑𝗉𝖲𝖣𝖥𝖤,𝒜𝖺𝗇𝗍𝗂-𝗉𝗂𝗋𝖺𝖼𝗒-𝖼𝗉𝖺(λ)=1]12+γ(λ)+𝗇𝖾𝗀𝗅(λ).\Pr[\mathsf{Exp}_{\mathsf{SDFE},\mathpzc{A}}^{\mathsf{anti}\mbox{-}\mathsf{piracy}\mbox{-}\mathsf{cpa}}(\lambda)=1]\leq\frac{1}{2}+\gamma(\lambda)+{\mathsf{negl}}(\lambda).

If 𝒜\mathpzc{A} can send only the challenge query ff^{\ast} during the experiment, we say that 𝖲𝖣𝖥𝖤\mathsf{SDFE} is challenge-only γ\gamma-anti-piracy secure.

We can also define the CPA-style anti-piracy for the predictor-based quantum decryptors as Definition A.1. That is, 𝒟𝒾\mathpzc{D}_{i} outputs f(x𝖼𝗈𝗂𝗇i)f^{\ast}(x_{\mathsf{coin}_{i}}) for i{1,2}i\in\{1,2\} instead of 𝖼𝗈𝗂𝗇i\mathsf{coin}_{i}. We omit the variation.

Theorem A.4.

If an SDFE scheme satisfies strong γ\gamma-anti-piracy security, it also satisfies γ\gamma-anti-piracy security in the CPA-style.

The proof of this theorem is almost the same as that of Theorem A.2, so we omit it to avoid replication.

Appendix B Adaptive and Simulation-based Security for Secure Key Leasing

This section presents how to upgrade FE with secure key leasing security.

B.1 Adaptive Security for Secure Key Leasing

Ananth et al. [ABSV15] present transformations from selectively secure FE into adaptively secure FE. Almost the same transformation works for FE with secure key leasing. The adaptive lessor security for SKFE with SKL is almost the same as Definition 3.2 except that 𝒜\mathpzc{A} declares (x0,x1)(x_{0}^{\ast},x_{1}^{\ast}) when 𝒜\mathpzc{A} sends 𝖼𝖾𝗋𝗍\mathsf{cert} to the challenger and we separate the key oracle into two types. The formal definition is as follows.

Definition B.1 (Adaptive Lessor Security).

We say that 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL} is an adaptively lessor secure SKFE-SKL scheme for 𝒳,𝒴\mathcal{X},\mathcal{Y}, and \mathcal{F}, if it satisfies the following requirement, formalized from the experiment 𝖤𝗑𝗉𝒜,𝖲𝖪𝖥𝖤-𝖲𝖪𝖫𝖺𝖽𝖺-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,𝖼𝗈𝗂𝗇)\mathsf{Exp}_{\mathpzc{A},\mathsf{SKFE\textrm{-}SKL}}^{\mathsf{ada}\mbox{-}\mathsf{lessor}}(1^{\lambda},\mathsf{coin}) between an adversary 𝒜\mathpzc{A} and a challenger:

  1. 1.

    At the beginning, 𝒜\mathpzc{A} sends 1q+q1^{q+q^{\ast}} to the challenger. The challenger runs 𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1q+q)\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q+q^{\ast}}). Throughout the experiment, 𝒜\mathpzc{A} can access the following oracles.

    O𝖤𝗇𝖼(x)O_{\mathtt{\mathsf{Enc}}}(x):

    Given xx, it returns 𝖤𝗇𝖼(𝗆𝗌𝗄,x)\mathsf{Enc}(\mathsf{msk},x).

    O𝒦𝒢(f,1n)O_{\mathtt{\mathpzc{KG}}}(f,1^{n}):

    Given (f,1n)(f,1^{n}), it generates (𝒻𝓈𝓀,𝗏𝗄)𝒦𝒢(𝗆𝗌𝗄,𝒻,1𝓃)(\mathpzc{fsk},\mathsf{vk})\leftarrow\mathpzc{KG}(\mathsf{msk},f,1^{n}), and sends 𝒻𝓈𝓀\mathpzc{fsk} to 𝒜\mathpzc{A}. 𝒜\mathpzc{A} can access this oracle at most qq times.

  2. 2.

    𝒜\mathpzc{A} can access the following oracles before 𝒜\mathpzc{A} declares the challenge plaintexts.

    O𝒦𝒢(f,1n)O_{\mathtt{\mathpzc{KG}}}^{\ast}(f^{\ast},1^{n^{\ast}}):

    Given (f,1n)(f^{\ast},1^{n^{\ast}}), it generates (𝒻𝓈𝓀,𝗏𝗄)𝒦𝒢(𝗆𝗌𝗄,𝒻,1𝓃)(\mathpzc{fsk}^{\ast},\mathsf{vk}^{\ast})\leftarrow\mathpzc{KG}(\mathsf{msk},f^{\ast},1^{n^{\ast}}), adds (f,1n,𝗏𝗄,)(f^{\ast},1^{n^{\ast}},\mathsf{vk}^{\ast},\bot) to L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}, and sends 𝒻𝓈𝓀\mathpzc{fsk}^{\ast} to 𝒜\mathpzc{A}. 𝒜\mathpzc{A} can access this oracle at most qq^{\ast} times.

    O𝖵𝗋𝖿𝗒(f,𝖼𝖾𝗋𝗍)O_{\mathtt{\mathsf{Vrfy}}}(f^{\ast},\mathsf{cert}^{\ast}):

    Given (f,𝖼𝖾𝗋𝗍)(f^{\ast},\mathsf{cert}^{\ast}), it finds an entry (f,1n,𝗏𝗄,M)(f^{\ast},1^{n^{\ast}},\mathsf{vk}^{\ast},M) from L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. (If there is no such entry, it returns \bot.) If =𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\top=\mathsf{Vrfy}(\mathsf{vk}^{\ast},\mathsf{cert}^{\ast}) and the number of queries to O𝖤𝗇𝖼O_{\mathtt{\mathsf{Enc}}} at this point is less than nn^{\ast}, it returns \top and updates the entry into (f,1n,𝗏𝗄,)(f^{\ast},1^{n^{\ast}},\mathsf{vk}^{\ast},\top). Otherwise, it returns \bot.

  3. 3.

    When 𝒜\mathpzc{A} sends (x0,x1)(x_{0}^{\ast},x_{1}^{\ast}) to receive the challenge ciphertext, if there exists (f,1n,𝗏𝗄,)(f^{\ast},1^{n^{\ast}},\mathsf{vk}^{\ast},\bot) in L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}, or O𝒦𝒢O_{\mathtt{\mathpzc{KG}}} received (f,1n)(f,1^{n}) such that f(x0)f(x1)f(x_{0}^{\ast})\neq f(x_{1}^{\ast}), the challenger outputs 0 as the final output of this experiment. Otherwise, the challenger generates 𝖼𝗍𝖤𝗇𝖼(𝗆𝗌𝗄,x𝖼𝗈𝗂𝗇)\mathsf{ct}^{*}\leftarrow\mathsf{Enc}(\mathsf{msk},x_{\mathsf{coin}}^{*}) and sends 𝖼𝗍\mathsf{ct}^{*} to 𝒜\mathpzc{A}. Hereafter, O𝒦𝒢O_{\mathtt{\mathpzc{KG}}} rejects a query (f,1n)(f,1^{n}) such that f(x0)f(x1)f(x_{0}^{\ast})\neq f(x_{1}^{\ast}) and 𝒜\mathpzc{A} cannot access O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}^{\ast} and O𝖵𝗋𝖿𝗒O_{\mathtt{\mathsf{Vrfy}}}.

  4. 4.

    𝒜\mathpzc{A} outputs a guess 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} for 𝖼𝗈𝗂𝗇\mathsf{coin}. The challenger outputs 𝖼𝗈𝗂𝗇\mathsf{coin}^{\prime} as the final output of the experiment.

For any QPT 𝒜\mathpzc{A}, it holds that

𝖠𝖽𝗏𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜𝖺𝖽𝖺-𝗅𝖾𝗌𝗌𝗈𝗋(λ)|Pr[𝖤𝗑𝗉𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜𝖺𝖽𝖺-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,0)=1]Pr[𝖤𝗑𝗉𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜𝖺𝖽𝖺-𝗅𝖾𝗌𝗌𝗈𝗋(1λ,1)=1]|𝗇𝖾𝗀𝗅(λ).\displaystyle\mathsf{Adv}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{lessor}}(\lambda)\coloneqq\absolutevalue{\Pr[\mathsf{Exp}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{lessor}}(1^{\lambda},0)=1]-\Pr[\mathsf{Exp}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A}}^{\mathsf{ada}\mbox{-}\mathsf{lessor}}(1^{\lambda},1)=1]}\leq{\mathsf{negl}}(\lambda). (49)
Remark B.2.

The definition above considers two key oracles O𝒦𝒢O_{\mathtt{\mathpzc{KG}}} and O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}^{\ast} unlike Definition 3.2 to distinguish a functional decryption key which is deleted from one which is not deleted. The oracle O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}^{\ast} accepts a query (f,1n)(f^{\ast},1^{n^{\ast}}) such that f(x0)f(x1)f^{\ast}(x_{0}^{\ast})\neq f^{\ast}(x_{1}^{\ast}). We need to distinguish these two types of queries since we need to know whether f(x0)=f(x1)f(x_{0}^{\ast})=f(x_{1}^{\ast}) or not when an adversary sends a query in the security proof of the construction below. It is not clear whether we can achieve a stronger adaptive security where adversaries access a single key generation oracle as Definition 3.2. We leave it as an open question.

We construct an adaptively secure SKFE scheme with secure key leasing 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫=(𝖲𝖾𝗍𝗎𝗉,𝒦𝒢,𝖤𝗇𝖼,𝒟𝒸,𝒞𝓇𝓉,𝖵𝗋𝖿𝗒)\mathsf{SKFE\textrm{-}SKL}=(\mathsf{Setup},\mathpzc{KG},\mathsf{Enc},\allowbreak\mathpzc{Dec},\mathpzc{Cert},\mathsf{Vrfy}) using the following tools:

  • A selectively secure SKFE scheme with secure key leasing 𝖲𝖾𝗅.𝖲𝖪𝖥𝖤=𝖲𝖾𝗅.(𝖲𝖾𝗍𝗎𝗉,𝒦𝒢,𝖤𝗇𝖼,𝒟𝒸,𝒞𝓇𝓉,𝖵𝗋𝖿𝗒)\mathsf{Sel}.\mathsf{SKFE}=\mathsf{Sel}.(\mathsf{Setup},\allowbreak\mathpzc{KG},\mathsf{Enc},\mathpzc{Dec},\allowbreak\mathpzc{Cert},\mathsf{Vrfy}).

  • An adaptively single-ciphertext secure SKFE scheme 𝟣𝖢𝖳.𝖲𝖪𝖥𝖤=𝟣𝖢𝖳.(𝖲𝖾𝗍𝗎𝗉,𝖪𝖦,𝖤𝗇𝖼,𝖣𝖾𝖼)\mathsf{1CT}.\mathsf{SKFE}=\mathsf{1CT}.(\mathsf{Setup},\allowbreak\mathsf{KG},\mathsf{Enc},\mathsf{Dec}).

  • A pseudorandom-secure SKE scheme 𝖲𝖪𝖤=𝖲𝖪𝖤.(𝖤,𝖣)\mathsf{SKE}=\mathsf{SKE}.(\mathsf{E},\mathsf{D}).

  • A PRF 𝖥\mathsf{F}.

Let 1\ell_{1} and 2\ell_{2} be the length of 𝖲𝖪𝖤\mathsf{SKE} ciphertexts and the length of random tags, respectively. The definition of adaptive lessor security is a natural adaptive variant of Definition 3.2. The description of 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL} is as follows.

𝖲𝖾𝗍𝗎𝗉(1λ)\mathsf{Setup}(1^{\lambda}):

  • Generate 𝗌𝖾𝗅.𝗆𝗌𝗄𝖲𝖾𝗅.𝖲𝖾𝗍𝗎𝗉(1λ)\mathsf{sel}.\mathsf{msk}\leftarrow\mathsf{Sel}.\mathsf{Setup}(1^{\lambda}).

  • Output 𝗆𝗌𝗄𝗌𝖾𝗅.𝗆𝗌𝗄\mathsf{msk}\coloneqq\mathsf{sel}.\mathsf{msk}.

𝒦𝒢(𝗆𝗌𝗄,𝒻,1𝓃)\mathpzc{KG}(\mathsf{msk},f,1^{n}):

  • Parse 𝗌𝖾𝗅.𝗆𝗌𝗄𝗆𝗌𝗄\mathsf{sel}.\mathsf{msk}\leftarrow\mathsf{msk}.

  • Generate 𝖼𝗍𝗌𝗄𝖾{0,1}1\mathsf{ct}_{\mathsf{ske}}\leftarrow\{0,1\}^{\ell_{1}} and choose τ{0,1}2\tau\leftarrow\{0,1\}^{\ell_{2}}.

  • Compute (𝗌𝖾𝗅.𝓈𝓀𝒢,𝗌𝖾𝗅.𝗏𝗄)𝖲𝖾𝗅.𝒦𝒢(𝗌𝖾𝗅.𝗆𝗌𝗄,𝒢[𝒻,𝖼𝗍𝗌𝗄𝖾,τ],1𝓃)(\mathsf{sel}.\mathpzc{sk}_{G},\mathsf{sel}.\mathsf{vk})\leftarrow\mathsf{Sel}.\mathpzc{KG}(\mathsf{sel}.\mathsf{msk},G[f,\mathsf{ct}_{\mathsf{ske}},\tau],1^{n}), where the circuit GG is described in Figure 9.

  • Output 𝓈𝓀𝒻𝗌𝖾𝗅.𝓈𝓀𝒢\mathpzc{sk}_{f}\coloneqq\mathsf{sel}.\mathpzc{sk}_{G} and 𝗏𝗄𝗌𝖾𝗅.𝗏𝗄\mathsf{vk}\coloneqq\mathsf{sel}.\mathsf{vk}.

𝖤𝗇𝖼(𝗆𝗌𝗄,x)\mathsf{Enc}(\mathsf{msk},x):

  • Parse 𝗌𝖾𝗅.𝗆𝗌𝗄𝗆𝗌𝗄\mathsf{sel}.\mathsf{msk}\leftarrow\mathsf{msk}.

  • Generate 𝟣𝖼𝗍.𝗆𝗌𝗄𝟣𝖢𝖳.𝖲𝖾𝗍𝗎𝗉(1λ)\mathsf{1ct}.\mathsf{msk}\leftarrow\mathsf{1CT}.\mathsf{Setup}(1^{\lambda}) and choose 𝖪{0,1}λ\mathsf{K}\leftarrow\{0,1\}^{\lambda}.

  • Generate 𝟣𝖼𝗍.𝖼𝗍𝟣𝖢𝖳.𝖤𝗇𝖼(𝟣𝖼𝗍.𝗆𝗌𝗄,x)\mathsf{1ct}.\mathsf{ct}\leftarrow\mathsf{1CT}.\mathsf{Enc}(\mathsf{1ct}.\mathsf{msk},x).

  • Generate 𝗌𝖾𝗅.𝖼𝗍𝖲𝖾𝗅.𝖤𝗇𝖼(𝗌𝖾𝗅.𝗆𝗌𝗄,(𝟣𝖼𝗍.𝗆𝗌𝗄,𝖪,0λ,0))\mathsf{sel}.\mathsf{ct}\leftarrow\mathsf{Sel}.\mathsf{Enc}(\mathsf{sel}.\mathsf{msk},(\mathsf{1ct}.\mathsf{msk},\mathsf{K},0^{\lambda},0)).

  • Output 𝖼𝗍x(𝟣𝖼𝗍.𝖼𝗍,𝗌𝖾𝗅.𝖼𝗍)\mathsf{ct}_{x}\coloneqq(\mathsf{1ct}.\mathsf{ct},\mathsf{sel}.\mathsf{ct}).

𝒟𝒸(𝓈𝓀𝒻,𝖼𝗍𝓍)\mathpzc{Dec}(\mathpzc{sk}_{f},\mathsf{ct}_{x}):

  • Parse 𝗌𝖾𝗅.𝓈𝓀𝒢𝓈𝓀𝒻\mathsf{sel}.\mathpzc{sk}_{G}\leftarrow\mathpzc{sk}_{f} and (𝟣𝖼𝗍.𝖼𝗍,𝗌𝖾𝗅.𝖼𝗍)𝖼𝗍x(\mathsf{1ct}.\mathsf{ct},\mathsf{sel}.\mathsf{ct})\leftarrow\mathsf{ct}_{x}.

  • Compute 𝟣𝖼𝗍.𝗌𝗄f𝖲𝖾𝗅.𝒟𝒸(𝗌𝖾𝗅.𝓈𝓀𝒢,𝗌𝖾𝗅.𝖼𝗍)\mathsf{1ct}.\mathsf{sk}_{f}\leftarrow\mathsf{Sel}.\mathpzc{Dec}(\mathsf{sel}.\mathpzc{sk}_{G},\mathsf{sel}.\mathsf{ct}).

  • Output y𝟣𝖢𝖳.𝖣𝖾𝖼(𝟣𝖼𝗍.𝗌𝗄f,𝟣𝖼𝗍.𝖼𝗍)y\leftarrow\mathsf{1CT}.\mathsf{Dec}(\mathsf{1ct}.\mathsf{sk}_{f},\mathsf{1ct}.\mathsf{ct}).

𝒞𝓇𝓉(𝓈𝓀𝒻)\mathpzc{Cert}(\mathpzc{sk}_{f}):

  • Parse 𝗌𝖾𝗅.𝓈𝓀𝒻𝓈𝓀𝒻\mathsf{sel}.\mathpzc{sk}_{f}\leftarrow\mathpzc{sk}_{f}.

  • Output 𝖼𝖾𝗋𝗍𝗌𝖾𝗅.𝖼𝖾𝗋𝗍𝖲𝖾𝗅.𝒞𝓇𝓉(𝗌𝖾𝗅.𝓈𝓀𝒻)\mathsf{cert}\coloneqq\mathsf{sel}.\mathsf{cert}\leftarrow\mathsf{Sel}.\mathpzc{Cert}(\mathsf{sel}.\mathpzc{sk}_{f}).

𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert}):

  • Parse 𝗌𝖾𝗅.𝗏𝗄=𝗏𝗄\mathsf{sel}.\mathsf{vk}=\mathsf{vk} and 𝗌𝖾𝗅.𝖼𝖾𝗋𝗍=𝖼𝖾𝗋𝗍\mathsf{sel}.\mathsf{cert}=\mathsf{cert}.

  • Output /𝖲𝖾𝗅.𝖵𝗋𝖿𝗒(𝗌𝖾𝗅.𝗏𝗄,𝗌𝖾𝗅.𝖼𝖾𝗋𝗍)\top/\bot\leftarrow\mathsf{Sel}.\mathsf{Vrfy}(\mathsf{sel}.\mathsf{vk},\mathsf{sel}.\mathsf{cert}).

Key Generation Circuit G[f,𝖼𝗍𝗌𝗄𝖾,τ](𝟣𝖼𝗍.𝗆𝗌𝗄,𝖪,K𝗌𝗄𝖾,β)G[f,\mathsf{ct}_{\mathsf{ske}},\tau](\mathsf{1ct}.\mathsf{msk},\mathsf{K},K_{\mathsf{ske}},\beta) Hardwired: function ff, SKE ciphertext 𝖼𝗍𝗌𝗄𝖾\mathsf{ct}_{\mathsf{ske}}, tag τ\tau. Input: master secret key 𝟣𝖼𝗍.𝗆𝗌𝗄\mathsf{1ct}.\mathsf{msk}, PRF key 𝖪\mathsf{K}, SKE secret key K𝗌𝗄𝖾K_{\mathsf{ske}}, bit β\beta. 1. If β=0\beta=0, output 𝟣𝖼𝗍.𝗌𝗄f𝟣𝖢𝖳.𝖪𝖦(𝟣𝖼𝗍.𝗆𝗌𝗄,f;𝖥𝖪(τ))\mathsf{1ct}.\mathsf{sk}_{f}\leftarrow\mathsf{1CT}.\mathsf{KG}(\mathsf{1ct}.\mathsf{msk},f;\mathsf{F}_{\mathsf{K}}(\tau)). 2. Else, output 𝖲𝖪𝖤.𝖣(K𝗌𝗄𝖾,𝖼𝗍𝗌𝗄𝖾)\mathsf{SKE}.\mathsf{D}(K_{\mathsf{ske}},\mathsf{ct}_{\mathsf{ske}}).

Figure 9: Description of G[f,𝖼𝗍𝗌𝗄𝖾,τ]G[f,\mathsf{ct}_{\mathsf{ske}},\tau].

We emphasize that 𝟣𝖢𝖳.𝖲𝖪𝖥𝖤\mathsf{1CT}.\mathsf{SKFE} is a classical standard SKFE scheme, and 𝟣𝖢𝖳.𝖪𝖦\mathsf{1CT}.\mathsf{KG} is a classical algorithm. This does not spoil the lessor security of 𝖲𝖾𝗅.𝖲𝖪𝖥𝖤\mathsf{Sel}.\mathsf{SKFE} because 𝟣𝖼𝗍.𝗌𝗄f\mathsf{1ct}.\mathsf{sk}_{f} generated by the circuit GG depends on 𝟣𝖼𝗍.𝗆𝗌𝗄\mathsf{1ct}.\mathsf{msk} and 𝖪\mathsf{K} from the encryption algorithm and τ\tau from the key generation algorithm. At the decryption phase, we can obtain 𝟣𝖼𝗍.𝗌𝗄f\mathsf{1ct}.\mathsf{sk}_{f} under 𝟣𝖼𝗍.𝗆𝗌𝗄\mathsf{1ct}.\mathsf{msk} from 𝖲𝖾𝗅.𝒦𝒢(𝗌𝖾𝗅.𝗆𝗌𝗄,𝒢,1𝓃)\mathsf{Sel}.\mathpzc{KG}(\mathsf{sel}.\mathsf{msk},G,1^{n}) and

(𝟣𝖢𝖳.𝖤𝗇𝖼(𝟣𝖼𝗍.𝗆𝗌𝗄,x),𝖲𝖾𝗅.𝖤𝗇𝖼(𝗌𝖾𝗅.𝗆𝗌𝗄,(𝟣𝖼𝗍.𝗆𝗌𝗄,𝖪,0λ,0))).(\mathsf{1CT}.\mathsf{Enc}(\mathsf{1ct}.\mathsf{msk},x),\mathsf{Sel}.\mathsf{Enc}(\mathsf{sel}.\mathsf{msk},(\mathsf{1ct}.\mathsf{msk},\mathsf{K},0^{\lambda},0))).

We can keep a copy of 𝟣𝖼𝗍.𝗌𝗄f\mathsf{1ct}.\mathsf{sk}_{f}. However, it does not help us to decrypt another ciphertext

(𝟣𝖢𝖳.𝖤𝗇𝖼(𝟣𝖼𝗍.𝗆𝗌𝗄,x),𝖲𝖾𝗅.𝖤𝗇𝖼(𝗌𝖾𝗅.𝗆𝗌𝗄,(𝟣𝖼𝗍.𝗆𝗌𝗄,𝖪,0λ,0))).(\mathsf{1CT}.\mathsf{Enc}(\mathsf{1ct}.\mathsf{msk}^{\prime},x^{\prime}),\mathsf{Sel}.\mathsf{Enc}(\mathsf{sel}.\mathsf{msk},(\mathsf{1ct}.\mathsf{msk}^{\prime},\mathsf{K}^{\prime},0^{\lambda},0))).

Note that 𝟣𝖼𝗍.𝗆𝗌𝗄\mathsf{1ct}.\mathsf{msk} is freshly generated at the encryption phase. That is, a functional decryption key 𝟣𝖼𝗍.𝗌𝗄f\mathsf{1ct}.\mathsf{sk}_{f} is specific to only one pair of 𝓈𝓀𝒻\mathpzc{sk}_{f} and 𝖼𝗍x\mathsf{ct}_{x}

Thus, after we securely delete 𝓈𝓀𝒻\mathpzc{sk}_{f} by using the deletion algorithm 𝖲𝖾𝗅.𝒞𝓇𝓉\mathsf{Sel}.\mathpzc{Cert} of 𝖲𝖾𝗅.𝖲𝖪𝖥𝖤\mathsf{Sel}.\mathsf{SKFE}, we can no longer decrypt a fresh ciphertext generated after the deletion. Since the deletion power is preserved, we can upgrade the selective security of 𝖲𝖾𝗅.𝖲𝖪𝖥𝖤\mathsf{Sel}.\mathsf{SKFE} to adaptive security by leveraging the adaptive security of 𝟣𝖢𝖳.𝖲𝖪𝖥𝖤\mathsf{1CT}.\mathsf{SKFE} as the transformation by Ananth et al. [ABSV15].

Theorem B.3.

If 𝖲𝖾𝗅.𝖲𝖪𝖥𝖤\mathsf{Sel}.\mathsf{SKFE} is selectively lessor secure, 𝟣𝖢𝖳.𝖲𝖪𝖥𝖤\mathsf{1CT}.\mathsf{SKFE} is adaptively single-ciphertext secure and collusion-resistant, 𝖲𝖪𝖤\mathsf{SKE} is pseudorandom-secure, and 𝖥\mathsf{F} is a pseudorandom function, 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL} above is adaptively lessor secure.

Since the proof is almost the same as that by Ananth et al. [ABSV15, Theorem 4 in the eprint ver.], we omit it to avoid the replication. Note that the reduction needs to embed 𝟣𝖼𝗍.𝗌𝗄f𝟣𝖢𝖳.𝖪𝖦(𝟣𝖼𝗍.𝗆𝗌𝗄,f;𝖥𝖪(τ))\mathsf{1ct}.\mathsf{sk}_{f}\leftarrow\mathsf{1CT}.\mathsf{KG}(\mathsf{1ct}.\mathsf{msk},f;\mathsf{F}_{\mathsf{K}}(\tau)) into 𝖼𝗍𝗌𝗄𝖾\mathsf{ct}_{\mathsf{ske}} for a key query such that f(x0)=f(x1)f(x_{0}^{\ast})=f(x_{1}^{\ast}), but 𝖼𝗍𝗌𝗄𝖾\mathsf{ct}_{\mathsf{ske}} should be a junk ciphertext for a key query such that f(x0)f(x1)f(x_{0}^{\ast})\neq f(x_{1}^{\ast}). The reduction knows which simulation-way is correct since Definition B.1 distinguishes two types of queries.

B.2 Simulation-based Security for Secure Key Leasing

Although we present indistinguishability-based security definitions for SKFE with secure key leasing in Section 3, we can also consider simulation-based security definitions for SKFE with secure key leasing. We present the definition of adaptive lessor simulation-security.

Definition B.4 (Adaptive Lessor Simulation-security).

Let 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL} be an SKFE scheme with secure key leasing. For a stateful QPT adversary 𝒜=(𝒜1,𝒜2,𝒜3)\mathpzc{A}=(\mathpzc{A}_{1},\mathpzc{A}_{2},\mathpzc{A}_{3}) and a stateful QPT Simulator 𝒮=(𝒮𝓃𝒸,𝒮𝒦𝒢)\mathpzc{S}=(\mathpzc{SEnc},\mathpzc{SKG}), we consider the two experiments described in Figure 10, where

  • 𝒜\mathpzc{A} is allowed to make total at most qq queries to 𝒦𝒢(𝗆𝗌𝗄,,)\mathpzc{KG}(\mathsf{msk},\cdot,\cdot) (resp. 𝒦𝒢(𝗆𝗌𝗄,,)\mathpzc{KG}(\mathsf{msk},\cdot,\cdot) and O𝒮𝒦𝒢(,)O_{\mathtt{\mathpzc{SKG}}}(\cdot,\cdot)) in 𝖱𝖾𝖺𝗅𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜𝖺𝖽-𝗌𝗂𝗆(λ)\mathsf{Real}^{\mathsf{ad}\textrm{-}\mathsf{sim}}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A}}(\lambda) (resp. 𝖲𝗂𝗆𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜,𝒮𝖺𝖽-𝗌𝗂𝗆(λ)\mathsf{Sim}^{\mathsf{ad}\textrm{-}\mathsf{sim}}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A},\mathpzc{S}}(\lambda)),

  • 𝒜\mathpzc{A} is allowed to make total at most qq^{\ast} queries to O𝒦𝒢(,)O_{\mathtt{\mathpzc{KG}}}^{\ast}(\cdot,\cdot), which is the same as 𝒦𝒢(𝗆𝗌𝗄,,)\mathpzc{KG}(\mathsf{msk},\cdot,\cdot) except that it also adds (f,1n,𝗏𝗄,)(f^{\ast},1^{n^{\ast}},\mathsf{vk}^{\ast},\bot) to L𝒦𝒢L_{\mathtt{\mathpzc{KG}}} when it is invoked,

  • 𝒜\mathpzc{A} is allowed to make queries to O𝖵𝗋𝖿𝗒(,)O_{\mathtt{\mathsf{Vrfy}}}(\cdot,\cdot), which is given (f,𝖼𝖾𝗋𝗍)(f^{\ast},\mathsf{cert}^{\ast}), it finds an entry (f,1n,𝗏𝗄,M)(f^{\ast},1^{n^{\ast}},\mathsf{vk}^{\ast},M) from L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}, and does the following: If there is no such entry, it returns \bot. If =𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\top=\mathsf{Vrfy}(\mathsf{vk}^{\ast},\mathsf{cert}^{\ast}) and the number of queries to O𝖤𝗇𝖼O_{\mathtt{\mathsf{Enc}}} at this point is less than nn^{\ast}, it returns \top and updates the entry into (f,1n,𝗏𝗄,)(f^{\ast},1^{n^{\ast}},\mathsf{vk}^{\ast},\top). Otherwise, it returns \bot,

  • O𝒮𝒦𝒢(f,1n)=𝒮𝒦𝒢(𝗌𝗍,𝒻,1𝓃,𝒻(𝓍))O_{\mathtt{\mathpzc{SKG}}}(f,1^{n})=\mathpzc{SKG}(\mathsf{st},f,1^{n},f(x^{*})).

𝖱𝖾𝖺𝗅𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜𝖺𝖽-𝗌𝗂𝗆(λ)\mathsf{Real}^{\mathsf{ad}\textrm{-}\mathsf{sim}}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A}}(\lambda) 𝖲𝗂𝗆𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜,𝒮𝖺𝖽-𝗌𝗂𝗆(λ)\mathsf{Sim}^{\mathsf{ad}\textrm{-}\mathsf{sim}}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A},\mathpzc{S}}(\lambda)
1. 1q+q𝒜1(1λ)1^{q+q^{\ast}}\leftarrow\mathpzc{A}_{1}(1^{\lambda}) 1. 1q+q𝒜1(1λ)1^{q+q^{\ast}}\leftarrow\mathpzc{A}_{1}(1^{\lambda})
2. 𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1q+q)\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q+q^{\ast}}) 2. 𝗆𝗌𝗄𝖲𝖾𝗍𝗎𝗉(1λ,1q+q)\mathsf{msk}\leftarrow\mathsf{Setup}(1^{\lambda},1^{q+q^{\ast}})
3. x𝒜2𝖤𝗇𝖼(𝗆𝗌𝗄,),𝒦𝒢(𝗆𝗌𝗄,,),𝒪𝒦𝒢(,),𝒪𝖵𝗋𝖿𝗒(,)x^{\ast}\leftarrow\mathpzc{A}_{2}^{\mathsf{Enc}(\mathsf{msk},\cdot),\mathpzc{KG}(\mathsf{msk},\cdot,\cdot),O_{\mathtt{\mathpzc{KG}}}^{\ast}(\cdot,\cdot),O_{\mathtt{\mathsf{Vrfy}}}(\cdot,\cdot)} 3. x𝒜2𝖤𝗇𝖼(𝗆𝗌𝗄,),𝒦𝒢(𝗆𝗌𝗄,,),𝒪𝒦𝒢(,),𝒪𝖵𝗋𝖿𝗒(,)x^{\ast}\leftarrow\mathpzc{A}_{2}^{\mathsf{Enc}(\mathsf{msk},\cdot),\mathpzc{KG}(\mathsf{msk},\cdot,\cdot),O_{\mathtt{\mathpzc{KG}}}^{\ast}(\cdot,\cdot),O_{\mathtt{\mathsf{Vrfy}}}(\cdot,\cdot)}
4. Output 0 if there exists (f,1n,𝗏𝗄,)(f^{\ast},1^{n^{\ast}},\mathsf{vk}^{\ast},\bot) in L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. Otherwise, go to the next step. 4. Output 0 if there exists (f,1n,𝗏𝗄,)(f^{\ast},1^{n^{\ast}},\mathsf{vk}^{\ast},\bot) in L𝒦𝒢L_{\mathtt{\mathpzc{KG}}}. Otherwise, go to the next step.
5. 5. Let 𝒬\mathcal{Q} be the query/answer list for 𝖤𝗇𝖼(𝗆𝗌𝗄,)\mathsf{Enc}(\mathsf{msk},\cdot)
6. 6. Let (fi,1ni)i[q](f_{i},1^{n_{i}})_{i\in[q]} be the queries for 𝖪𝖦(𝗆𝗌𝗄,,)\mathsf{KG}(\mathsf{msk},\cdot,\cdot)
7. 7. yi:=fi(x)y_{i}:=f_{i}(x^{*}) for every i[q]i\in[q]
8. 𝖼𝗍𝖤𝗇𝖼(𝗆𝗌𝗄,x)\mathsf{ct}^{*}\leftarrow\mathsf{Enc}(\mathsf{msk},x^{*}) 8. (𝖼𝗍,𝗌𝗍)𝒮𝓃𝒸(𝗆𝗌𝗄,𝒬,(𝒻𝒾,1𝓃𝒾,𝓎𝒾)𝒾[𝓆])(\mathsf{ct}^{*},\mathsf{st})\leftarrow\mathpzc{SEnc}(\mathsf{msk},\mathcal{Q},(f_{i},1^{n_{i}},y_{i})_{i\in[q]})
9. Output b𝒜3(𝖼𝗍)𝖤𝗇𝖼(𝗆𝗌𝗄,),𝒦𝒢(𝗆𝗌𝗄,,)b\leftarrow\mathpzc{A}_{3}(\mathsf{ct}^{*})^{\mathsf{Enc}(\mathsf{msk},\cdot),\mathpzc{KG}(\mathsf{msk},\cdot,\cdot)} 9. Output b𝒜3(𝖼𝗍)𝖤𝗇𝖼(𝗆𝗌𝗄,),𝒪𝒮𝒦𝒢(,)b\leftarrow\mathpzc{A}_{3}(\mathsf{ct}^{*})^{\mathsf{Enc}(\mathsf{msk},\cdot),O_{\mathtt{\mathpzc{SKG}}}(\cdot,\cdot)}
Figure 10: Security experiments for adaptively lessor simulation-secure SKFE-SKL

We say that 𝖲𝖪𝖥𝖤-𝖲𝖪𝖫\mathsf{SKFE\textrm{-}SKL} is adaptively lessor simulation-secure if there exists a QPT simulator 𝒮\mathpzc{S} such that for any QPT adversary 𝒜\mathpzc{A}, it satisfies that

|Pr[𝖱𝖾𝖺𝗅𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜𝖺𝖽-𝗌𝗂𝗆(λ)=1]Pr[𝖲𝗂𝗆𝖲𝖪𝖥𝖤-𝖲𝖪𝖫,𝒜,𝒮𝖺𝖽-𝗌𝗂𝗆(λ)=1]|𝗇𝖾𝗀𝗅(λ).\absolutevalue{\Pr[\mathsf{Real}^{\mathsf{ad}\textrm{-}\mathsf{sim}}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A}}(\lambda)=1]-\Pr[\mathsf{Sim}^{\mathsf{ad}\textrm{-}\mathsf{sim}}_{\mathsf{SKFE\textrm{-}SKL},\mathpzc{A},\mathpzc{S}}(\lambda)=1]}\leq{\mathsf{negl}}(\lambda).

This is a natural simulation-based variant of adaptive lessor (indistinguishability-)security. The simulator 𝒮=(𝒮𝓃𝒸,𝒮𝒦𝒢)\mathpzc{S}=(\mathpzc{SEnc},\mathpzc{SKG}) does not have fj(x)f^{\ast}_{j}(x^{\ast}), and the simulated ciphertext does not reveal information about fj(x)f^{\ast}_{j}(x^{\ast}).

Remark B.5.

We consider two key oracles 𝒦𝒢\mathpzc{KG} and O𝒦𝒢O_{\mathtt{\mathpzc{KG}}}^{\ast} as Definition B.1 to distinguish two types of queries. We can achieve this simulation-based security since we use adaptively lessor secure SKFE-SKL in the sense of Definition B.1 as a building block below. It is also an open question to achieve a stronger adaptive simulation-based security where adversaries access a single key generation oracle as Definition 3.2.

De Caro, Iovino, Jani, O’Neil, Paneth, and Persiano [DIJ+13] present a transformation from indistinguishability-based secure FE to simulation-based secure FE. The transformation works if the number of key queries before a challenge ciphertext is given is a-priori bounded. We can apply almost the same transformation to SKFE with secure leasing since we modify a plaintext in the ciphertext and a function embedded in a functional decryption key.

We construct an adaptively lessor simulation-secure SKFE scheme with secure key leasing 𝖺𝖽𝖺𝖲𝖪𝖫=𝖺𝖽𝖺𝖲𝖪𝖫.(𝖲𝖾𝗍𝗎𝗉,𝒦𝒢,𝖤𝗇𝖼,𝒟𝒸,𝒞𝓇𝓉,𝖵𝗋𝖿𝗒)\mathsf{adaSKL}=\mathsf{adaSKL}.(\mathsf{Setup},\mathpzc{KG},\mathsf{Enc},\mathpzc{Dec},\mathpzc{Cert},\mathsf{Vrfy}) using the following tools:

  • An adaptively lessor (indistinguishability-)secure SKFE scheme with secure key leasing 𝗂𝗇𝖽𝖲𝖪𝖫=𝗂𝗇𝖽𝖲𝖪𝖫.(𝖲𝖾𝗍𝗎𝗉,𝒦𝒢,𝖤𝗇𝖼,𝒟𝒸,𝒞𝓇𝓉,𝖵𝗋𝖿𝗒)\mathsf{indSKL}=\mathsf{indSKL}.(\mathsf{Setup},\mathpzc{KG},\mathsf{Enc},\allowbreak\mathpzc{Dec},\mathpzc{Cert},\mathsf{Vrfy}).

  • A pseudorandom-secure SKE scheme 𝖲𝖪𝖤=𝖲𝖪𝖤.(𝖤,𝖣)\mathsf{SKE}=\mathsf{SKE}.(\mathsf{E},\mathsf{D}).

Let 1\ell_{1}, 2\ell_{2}, and mm be the length of 𝖲𝖪𝖤\mathsf{SKE} ciphertexts, the length of random tags, and the output length, respectively. The description of 𝖺𝖽𝖺𝖲𝖪𝖫\mathsf{adaSKL} is as follows.

𝖺𝖽𝖺𝖲𝖪𝖫.𝖲𝖾𝗍𝗎𝗉(1λ)\mathsf{adaSKL}.\mathsf{Setup}(1^{\lambda}):

  • Generate 𝗂𝗇𝖽.𝗆𝗌𝗄𝗂𝗇𝖽𝖲𝖪𝖫.𝖲𝖾𝗍𝗎𝗉(1λ)\mathsf{ind}.\mathsf{msk}\leftarrow\mathsf{indSKL}.\mathsf{Setup}(1^{\lambda}).

  • Output 𝗆𝗌𝗄𝗂𝗇𝖽.𝗆𝗌𝗄\mathsf{msk}\coloneqq\mathsf{ind}.\mathsf{msk}.

𝖺𝖽𝖺𝖲𝖪𝖫.𝒦𝒢(𝗆𝗌𝗄,𝒻,1𝓃)\mathsf{adaSKL}.\mathpzc{KG}(\mathsf{msk},f,1^{n}):

  • Parse 𝗂𝗇𝖽.𝗆𝗌𝗄𝗆𝗌𝗄\mathsf{ind}.\mathsf{msk}\leftarrow\mathsf{msk}.

  • Generate 𝖼𝗍𝗌𝗄𝖾{0,1}1\mathsf{ct}_{\mathsf{ske}}\leftarrow\{0,1\}^{\ell_{1}} and choose τ{0,1}2\tau\leftarrow\{0,1\}^{\ell_{2}}.

  • Compute (𝗂𝗇𝖽.𝓈𝓀𝒯,𝗂𝗇𝖽.𝗏𝗄)𝗂𝗇𝖽𝖲𝖪𝖫.𝒦𝒢(𝗌𝖾𝗅.𝗆𝗌𝗄,𝒯[𝒻,𝖼𝗍𝗌𝗄𝖾,τ],1𝓃)(\mathsf{ind}.\mathpzc{sk}_{T},\mathsf{ind}.\mathsf{vk})\leftarrow\mathsf{indSKL}.\mathpzc{KG}(\mathsf{sel}.\mathsf{msk},T[f,\mathsf{ct}_{\mathsf{ske}},\tau],1^{n}), where the circuit TT is described in Figure 11.

  • Output 𝓈𝓀𝒻𝗂𝗇𝖽.𝓈𝓀𝒯\mathpzc{sk}_{f}\coloneqq\mathsf{ind}.\mathpzc{sk}_{T} and 𝗏𝗄𝗂𝗇𝖽.𝗏𝗄\mathsf{vk}\coloneqq\mathsf{ind}.\mathsf{vk}.

𝖺𝖽𝖺𝖲𝖪𝖫.𝖤𝗇𝖼(𝗆𝗌𝗄,x)\mathsf{adaSKL}.\mathsf{Enc}(\mathsf{msk},x):

  • Parse (𝗂𝗇𝖽.𝗆𝗌𝗄,K𝗌𝗄𝖾)𝗆𝗌𝗄(\mathsf{ind}.\mathsf{msk},K_{\mathsf{ske}})\leftarrow\mathsf{msk}.

  • Set x(x,0λ,(02,0m),,(02,0m),0)x^{\prime}\coloneqq(x,0^{\lambda},(0^{\ell_{2}},0^{m}),\ldots,(0^{\ell_{2}},0^{m}),0), where mm is the output length of functions.

  • Generate 𝗂𝗇𝖽.𝖼𝗍𝗂𝗇𝖽𝖲𝖪𝖫.𝖤𝗇𝖼(𝗂𝗇𝖽.𝗆𝗌𝗄,x)\mathsf{ind}.\mathsf{ct}\leftarrow\mathsf{indSKL}.\mathsf{Enc}(\mathsf{ind}.\mathsf{msk},x^{\prime}).

  • Output 𝖼𝗍x𝗂𝗇𝖽.𝖼𝗍\mathsf{ct}_{x}\coloneqq\mathsf{ind}.\mathsf{ct}.

𝖺𝖽𝖺𝖲𝖪𝖫.𝒟𝒸(𝓈𝓀𝒻,𝖼𝗍𝓍)\mathsf{adaSKL}.\mathpzc{Dec}(\mathpzc{sk}_{f},\mathsf{ct}_{x}):

  • Parse 𝗂𝗇𝖽.𝓈𝓀𝒯𝓈𝓀𝒻\mathsf{ind}.\mathpzc{sk}_{T}\leftarrow\mathpzc{sk}_{f} and 𝗂𝗇𝖽.𝖼𝗍𝖼𝗍x\mathsf{ind}.\mathsf{ct}\leftarrow\mathsf{ct}_{x}.

  • Output y𝗂𝗇𝖽𝖲𝖪𝖫.𝒟𝒸(𝗂𝗇𝖽.𝓈𝓀𝒯,𝗂𝗇𝖽.𝖼𝗍)y\leftarrow\mathsf{indSKL}.\mathpzc{Dec}(\mathsf{ind}.\mathpzc{sk}_{T},\mathsf{ind}.\mathsf{ct}).

𝖺𝖽𝖺𝖲𝖪𝖫.𝒞𝓇𝓉(𝓈𝓀𝒻)\mathsf{adaSKL}.\mathpzc{Cert}(\mathpzc{sk}_{f}):

  • Parse 𝗂𝗇𝖽.𝓈𝓀𝒻𝓈𝓀𝒻\mathsf{ind}.\mathpzc{sk}_{f}\leftarrow\mathpzc{sk}_{f}.

  • Output 𝖼𝖾𝗋𝗍𝗂𝗇𝖽.𝖼𝖾𝗋𝗍𝗂𝗇𝖽𝖲𝖪𝖫.𝒞𝓇𝓉(𝗂𝗇𝖽.𝓈𝓀𝒻)\mathsf{cert}\coloneqq\mathsf{ind}.\mathsf{cert}\leftarrow\mathsf{indSKL}.\mathpzc{Cert}(\mathsf{ind}.\mathpzc{sk}_{f}).

𝖺𝖽𝖺𝖲𝖪𝖫.𝖵𝗋𝖿𝗒(𝗏𝗄,𝖼𝖾𝗋𝗍)\mathsf{adaSKL}.\mathsf{Vrfy}(\mathsf{vk},\mathsf{cert}):

  • Parse 𝗂𝗇𝖽.𝗏𝗄=𝗏𝗄\mathsf{ind}.\mathsf{vk}=\mathsf{vk} and 𝗂𝗇𝖽.𝖼𝖾𝗋𝗍=𝖼𝖾𝗋𝗍\mathsf{ind}.\mathsf{cert}=\mathsf{cert}.

  • Output /𝗂𝗇𝖽𝖲𝖪𝖫.𝖵𝗋𝖿𝗒(𝗂𝗇𝖽.𝗏𝗄,𝗂𝗇𝖽.𝖼𝖾𝗋𝗍)\top/\bot\leftarrow\mathsf{indSKL}.\mathsf{Vrfy}(\mathsf{ind}.\mathsf{vk},\mathsf{ind}.\mathsf{cert}).

Trapdoor Circuit T[f,𝖼𝗍𝗌𝗄𝖾,τ](x,K𝗌𝗄𝖾,(τ1,y1),,(τq,yq),β)T[f,\mathsf{ct}_{\mathsf{ske}},\tau](x,K_{\mathsf{ske}},(\tau_{1},y_{1}),\ldots,(\tau_{q},y_{q}),\beta) Hardwired: function ff, SKE ciphertext 𝖼𝗍𝗌𝗄𝖾\mathsf{ct}_{\mathsf{ske}}, tag τ\tau. Input: plaintext xx, SKE secret key K𝗌𝗄𝖾K_{\mathsf{ske}}, qq pairs of tag and output (τ1,y1),,(τq,yq)(\tau_{1},y_{1}),\ldots,(\tau_{q},y_{q}), bit β\beta. 1. If β=1\beta=1, do the following If there exists ii such that τ=τi\tau=\tau_{i}, output yiy_{i}. Else output y𝖲𝖪𝖤.𝖣(K𝗌𝗄𝖾,𝖼𝗍𝗌𝗄𝖾)y^{\prime}\leftarrow\mathsf{SKE}.\mathsf{D}(K_{\mathsf{ske}},\mathsf{ct}_{\mathsf{ske}}). 2. Else, output f(x)f(x).

Figure 11: Description of T[f,𝖼𝗍𝗌𝗄𝖾,τ]T[f,\mathsf{ct}_{\mathsf{ske}},\tau].

As we see above, we expand the plaintext space and use the trapdoor circuit TT as De Caro et al. [DIJ+13]. We can construct a QPT simulator as follows.

  1. 1.

    Generates 𝗂𝗇𝖽.𝗆𝗌𝗄𝗂𝗇𝖽𝖲𝖪𝖫.𝖲𝖾𝗍𝗎𝗉(1λ)\mathsf{ind}.\mathsf{msk}\leftarrow\mathsf{indSKL}.\mathsf{Setup}(1^{\lambda}) and K𝗌𝗄𝖾{0,1}λK_{\mathsf{ske}}\leftarrow\{0,1\}^{\lambda}.

  2. 2.

    Receives 𝓈𝓀𝒻𝒾=(𝗂𝗇𝖽.𝓈𝓀𝒻𝒾,𝖼𝗍𝗌𝗄𝖾,𝒾,τ𝒾)\mathpzc{sk}_{f_{i}}=(\mathsf{ind}.\mathpzc{sk}_{f_{i}},\mathsf{ct}_{\mathsf{ske},i},\tau_{i}) for i[q𝗉𝗋𝖾]i\in[q_{\mathsf{pre}}] and outputs for pre-challenge key queries, that is, f1(x),,fq𝗉𝗋𝖾(x)f_{1}(x^{\ast}),\ldots,f_{q_{\mathsf{pre}}}(x^{\ast}).

  3. 3.

    Generates a challenge ciphertext 𝗂𝗇𝖽𝖲𝖪𝖫.𝖤𝗇𝖼(𝗂𝗇𝖽.𝗆𝗌𝗄,(0,K𝗌𝗄𝖾,(τ1,f1(x)),,(τq𝗉𝗋𝖾,fq𝗉𝗋𝖾(x)),1))\mathsf{indSKL}.\mathsf{Enc}(\mathsf{ind}.\mathsf{msk},(0,K_{\mathsf{ske}},(\tau_{1},f_{1}(x^{\ast})),\ldots,\allowbreak(\tau_{q_{\mathsf{pre}}},f_{q_{\mathsf{pre}}}(x^{\ast})),1)).

  4. 4.

    Simulates functional decryption keys for post-challenge key queries as follows. When an output value fi(x)f^{\prime}_{i}(x^{\ast}) for a key query fif^{\prime}_{i} is given, generates (𝗂𝗇𝖽.𝓈𝓀𝒯,𝗂𝗇𝖽.𝗏𝗄)𝖲𝖾𝗅.𝒦𝒢(𝗌𝖾𝗅.𝗆𝗌𝗄,𝒯[𝒻𝒾,𝖼𝗍𝗌𝗄𝖾,𝒾,τ𝒾],1𝓃)(\mathsf{ind}.\mathpzc{sk}_{T},\mathsf{ind}.\mathsf{vk})\leftarrow\mathsf{Sel}.\mathpzc{KG}(\mathsf{sel}.\mathsf{msk},T[f^{\prime}_{i},\mathsf{ct}^{\prime}_{\mathsf{ske},i},\tau^{\prime}_{i}],1^{n}) where 𝖼𝗍𝗌𝗄𝖾,i𝖲𝖪𝖤.𝖤(K𝗌𝗄𝖾,fi(x))\mathsf{ct}^{\prime}_{\mathsf{ske},i}\leftarrow\mathsf{SKE}.\mathsf{E}(K_{\mathsf{ske}},f^{\prime}_{i}(x^{\ast})) and τi{0,1}2\tau^{\prime}_{i}\leftarrow\{0,1\}^{\ell_{2}}.

Note that the simulator should not have fj(x)f^{\ast}_{j}(x^{\ast}) for any j[q]j\in[q^{\ast}] since {𝓈𝓀𝒻𝒿}𝒿[𝓆]\{\mathpzc{sk}_{f^{\ast}_{j}}\}_{j\in[q^{\ast}]} are deleted and the challenge ciphertext should not reveal information about {fj(x)}j[q]\{f^{\ast}_{j}(x^{\ast})\}_{j\in[q^{\ast}]}, where {fj}j[q]\{f^{\ast}_{j}\}_{j\in[q^{\ast}]} are the challenge functions, and the simulation-security is satisfied.

Since the flag β=1\beta=1 in the simulated challenge ciphertext, the trapdoor circuit TT works at the trapdoor branch. For functional decryption keys before the challenge ciphertext, TT works at the first item in the β=1\beta=1 branch since τi\tau_{i} is a tag embedded in the functional decryption keys for pre-challenge key queries. So, the output of TT is an embedded fi(x)f_{i}(x^{\ast}). This is consistent. For functional decryption keys after the challenge ciphertext, TT works at the second item in the β=1\beta=1 branch since τi\tau^{\prime}_{i} is uniformly random and must be different from τi\tau_{i} except negligible probability. In addition, y=fi(x)y^{\prime}=f^{\prime}_{i}(x^{\ast}) since 𝖼𝗍𝗌𝗄𝖾𝖲𝖪𝖤.𝖤(K𝗌𝗄𝖾,fi(x))\mathsf{ct}^{\prime}_{\mathsf{ske}}\leftarrow\mathsf{SKE}.\mathsf{E}(K_{\mathsf{ske}},f^{\prime}_{i}(x^{\ast})). This is consistent. Thus, the simulated ciphertext does not include information about {fj(x)}j[q]\{f^{\ast}_{j}(x^{\ast})\}_{j\in[q^{\ast}]}.

In reducing to the adaptive lessor (indistinguishability)-security, the simulator can simulate the key generation and encryption oracles in the simulation-based game by using the oracles in the indistinguishability-based game.

Theorem B.6.

If 𝗂𝗇𝖽𝖲𝖪𝖫\mathsf{indSKL} is adaptively lessor (indistinguishability-)secure and 𝖲𝖪𝖤\mathsf{SKE} is pseuodrandom-secure, 𝖺𝖽𝖺𝖲𝖪𝖫\mathsf{adaSKL} is adaptively lessor simulation-secure.

Since the proof is almost the same as that by De Caro et al. [DIJ+13, Theorem 14 in the eprint ver.], we omit it to avoid the replication.