# Efficient Key Exchange Using Identity-Based Encryption in Multipath TCP Environment
## 3 Related Work: Identity-Based Encryption (IBE) and Elliptic Curve Cryptosystem (ECC)
Here, ECDLP and ECDHP are used to secure the connection between the communicating hosts and PKG. ECDLP can be defined by considering equation \(Q=kP\), the discrete logarithm of \(Q\) to the base \(P\), for the given points \(P\) and \(Q\) in group \(E_{p}\ (a,b)\) and \(k<p\) It will be exceptionally challenging for the adversary to figure out the value of \(k\). ECDHP uses elliptic curves for key exchange. First, select the large integer number \(q\). Here, \(q\) must be selected in such a way that it is either the prime number \(p\) for the \(Z_{p}\) or is the integer of the form \(2^{m}\). In addition, select the coefficients \(a\) and \(b\) for the elliptic curve \(E_{q}(a,b)\). Now, select point \(G=(x_{1},y_{1})\) on the elliptic curve of the order of a large number \(n\). Here, \(E_{q}(a,b)\) and \(G\) are the global parameters, which will be used for the key generation and will be known to all the participants. The key exchange process for [PERSON] and PKG and [PERSON] and PKG is as follow:  
1. [PERSON] selects the private key \(n_{Alice}\), which is less than \(n\). The public key \(P_{Alice}\) will be point \((X_{Alice},Y_{Alice})\) in elliptic curve \(E_{q}(a,b)\), which can be generated by using the private key \(n_{Alice}\) and global parameter \(G\) using the below equation. \[Public\ Key\ P_{[PERSON]}=n_{Alice}\times\ G\]
2. By using the same equation, PKG can select the private key \(n_{PKG}\) and generate the public key \(P_{PKG}\). 3. Now, [PERSON] can generate the secret key \(K=n_{[PERSON]}\times P_{PKG}\), and PKG can generate the secret key \(K=n_{PKG}\times P_{[PERSON]}\). Here, the secret key generated by [PERSON] and PKG will be the same, which will be used for communication. Figure 9: Identity-based encryption. The session key for communication between [PERSON] and PKG is as below:  
\[S_{k}=HMAC\ (K,\ (Y_{[PERSON]}\oplus Y_{PKG}))\]  
The same process can be used to generate the secret key for the communication between [PERSON] and PKG for secure communication as shown in Figure 10.  
The IBE used for SKEXMTCP uses the Weil pairing on elliptic curves proposed by [PERSON] and [PERSON] [25], in which it can be defined using any of the bilinear maps \(\hat{\varrho}:G1\times G2\to G2\) where \(G1\) and \(G2\) are two cyclic groups of order \(q\) for some large prime \(q\). \(G1\) can be viewed as an additive group, as it is the group of points of an elliptic curve over \(F_{p}\) and \(G2\), which can be viewed as a multiplicative group, as it is a subgroup of \(F_{p2}^{*}\). The IBE uses four algorithms: SetUp, KeyGeneration, Encryption, and Decryption for the implementation of the entire scenario [25]. * SetUp: By using this algorithm, the PKG provides the system parameters and master-key share, which will be used to generate the private key. This algorithm takes security parameter \(\text{k}\in Z^{+}\), \(G1\) and \(G2\) to build a bilinear map \(\hat{\varrho}:G1\times G2\to G2\), \(2\) cryptographic hash functions \(h1\) and \(h2\) and returns system parameters \(Params=\left<q,\ G1,\ G2,\ \hat{\varrho},\ n,\ P,\ P_{pub},\ H1,\ H2\right>\) and master key share. Here, \(q\) is the prime number, and \(P\) is the random number generator, which generates the random number \(s\) to obtain the value of \(P_{pub}=sP\), where s is the master key share. * KeyGeneration: By using this algorithm, the private key of the particular entity will be generated on request by using system parameters, master-key share, and public parameters. This algorithm uses the master key share and \(ID\) to generate the private key \(d_{ID}=sQ_{ID}\), where \(s\) is a master key and \(Q_{ID}=H1(ID)\in\ G_{1}^{*}\). Figure 10: Key exchange scenario between Alice–PKG and Bob–PKG. * Encryption: During the encryption, the \(ID\) of the receiver and system parameters will be used to encrypt a message, and ciphertext will be generated.