# Secure Proxy Re-Encryption Protocol for FANETs Resistant to Chosen-Ciphertext Attacks
## 3 Preliminaries
### Security Building Blocks  
**Definition 1**. : _Discrete Logarithm Problem (DLP): It is a hard problem that involves finding the integer \(x\)\((0\leq x\leq p-2)\) such that \(\alpha^{x}\equiv\beta\) (mod \(p\)), given a prime \(p\), a generator \(\alpha\) of \(Z_{p}^{*}\), and an element \(\beta\in Z_{p}^{*}\)[19]._  
**Definition 2**. : _Decisional Diffie-Hellman Problem (DDH): Let \(G\) be a group with prime order \(q\), and let \(g\) be a generator of \(G\). The decisional Diffie-Hellman (DDH) problem involves distinguishing between two types of triplets: \((g^{a},~{}g^{b},~{}g^{ab})\) and \((g^{a},~{}g^{b},~{}g^{c})\), where random elements \(a,~{}b,~{}c~{}\in\{1,\ldots,q-1\}\)._  
_The experiment with a polynomial-time adversary \(A\) is as follows: flip a coin \(\delta\) to obtain either 0 or 1, if \(\delta=1\), set \(c=ab\); otherwise, choose \(c\) at random. It is said that the DDH problem is hard if, for any polynomial-time adversary \(A\), the absolute value of the difference between the probability \(\left|Pr(A\Big{(}G,~{}g^{a},~{}g^{b},~{}g^{c}\Big{)}=\delta\Big{)}-\frac{1}{2}\right|\) is negligible [19]._  
Figure 1: Participants and scenario flow. **Definition 3**. : _Group Decisional Diffie-Hellman_ (**GDDH**): _The \(GDDH_{\Gamma}\) problem is (\(T,\varepsilon\))-intractable if there is no (\(T,\varepsilon\))-GDDH\({}_{\Gamma}\)-distinguisher in \(G\) for all polynomial \(T\) and non-negligible \(\varepsilon\). (Refer to [20]):_  
_The (\(T,\varepsilon\))-GDDH\({}_{\Gamma}\)-distinguisher in \(G\) is a probabilistic Turing machine \(\Delta\) running in time \(T\) such that \(Adv_{G}^{GDDH_{\Gamma}}(\Delta)=\left|\left[Pr_{x_{i}}\Delta(GDH_{\Gamma}^{*} )=1\right]-\left[Pr_{x_{i},r}\Delta\left(GDH_{\Gamma}^{S}\right)=1\right] \right|\geq\varepsilon\)._  
**Remark 1**. : _The Decisional Diffie-Hellman Assumption: Let us define two additional distributions from the GDH-Distribution:_  
\[GDH_{\Gamma}^{*}=\left\{\left.\left(J,\ g^{\Pi_{j\in^{\mathcal{F}}_{j}}} \right)_{j\in\Gamma^{\prime}}\right.\left(I_{n},\ g^{x_{1}\cdots x_{n}} \right)\right|x_{1},\ \ldots,x_{n}\in_{R}Z_{q}\right\}\]  
\[GDH_{\Gamma}^{S}=\left\{\left.\left(J,\ g^{\Pi_{j\in^{\mathcal{F}}_{j}}} \right)_{j\in\Gamma^{\prime}}\right.\left(I_{n},\ g^{\mathcal{F}}\right) \right|x_{1},\ \ldots,x_{n},r\in_{R}Z_{q}\right\}\]  
**Definition 4**. : _Pseudorandom Function (**PRF**): It is said that \(F:\ K_{f}\times X\longrightarrow Y\) is \((t,q,\varepsilon)\)-secure pseudorandom function if any oracle algorithm, which makes a maximum of \(q\) oracle queries and has a running time of at most \(t\), exhibits an advantage \(Adv_{A}<\varepsilon\). The advantage \(Adv_{A}\), representing the probability of adversary \(A\) succeeding in an attack, is defined as follows: \(Adv_{A}=\left|Pr\left[A^{F_{k}}=1\right]-Pr\left[A^{R}=1\right]\right|\). Here, \(R\) denotes a randomly chosen function uniformly selected from the set of all mappings from \(X\) to \(Y\). The probabilities are considered with respect to the selection of \(k\) and \(R\)[21]._  
**Definition 5**. : _Pseudorandom Generator_ (**PRG**): It is said that \(G_{r}:K_{G_{r}}\longrightarrow S\) is a \((t,\varepsilon)\)-secure pseudorandom generator if any algorithm \(A\), operating within a time limit of \(t\), demonstrates an advantage \(Adv_{A}<\varepsilon\). The advantage \(Adv_{A}\) is defined as follows: \(Adv_{A}=\left|Pr\left[A\left(G_{r}\left(U_{K_{G_{r}}}\right)\right)=1\right]\right|\). The random variables \(U_{K_{G_{r}}}\) and \(U_{S}\) are uniformly distributed over the sets \(K_{G_{r}}\) and \(S\), respectively [21]. **Definition 6**. : _Public Key Encryption_ (**PKE**)_. The PKE system consists of three probabilistic polynomial-time (PPT) algorithms (KGen, EnC, DeC):_  
* _KGen_ (_\(1^{k}\)_) \(\rightarrow\) _(pk, sk). Given the security parameter_ \(1^{k}\)_, the key generation algorithm KGen produces a public key pk and a secret key sk._
* _EnC(pk, m)_ \(\rightarrow\)__C.