# A More Efficient Conditional Private Preservation Scheme in Vehicular Ad Hoc Networks
## 5 The Improved More Efficient Protocol
### Temporary Anonymous Key Generation  
In this part, we will describe how to generate the OBU temporary anonymous key. Based on ECPP, we propose an improved protocol. First of all, the temporary anonymous information of OBU does not have to be stored by RSU. After mutual authentication, a random pseudo-id of OBU is generated by RSU, which is contained in the temporary certificate. When a dispute occurs, the real identity of the malicious vehicles could be recovered from temporary certification by RSU and TA together. The temporary anonymous key will be changed frequently. Therefore, that will help to save large storage spaces. Secondly, the interaction rounds are decreased to three times on the premise of mutual authentication in the scheme, while six times in ECPP. Because only valid RSU at location \(L_{j}\) can decrypt the cipher text to get the pseudo-id \(PID_{i}\), there is no risk in disclosing its pseudo-id \(PID_{i}\) to an attacker. It is more practical in the real world with fewer interactions. Finally, computation overhead is reduced because of less pairing operation and less point multiplication. In Figure 2, we describe the flowchart of temporary anonymous key generation. When the vehicle enters the area of the RSU, it firstly generates its temporary short-time anonymous private key. Then, the vehicle makes a signature as its proof and sends the request information to RSU. After receiving the request, the RSU checks the validity of signature at first. If it is valid, the OBU is authenticated. The RSU issues the temporary certificate and sends back to the vehicle. When receiving the certificate, the vehicle checks its validity. If valid, the RSU is also authenticated and the certificate is accepted. Next, we will give the detailed process of OBU temporary anonymous key generation in Table 2.  
* Step 1. When an OBU goes into the location \(L_{j}\), it firstly computes \(R_{1}=(g_{2}^{h(L_{j})}\cdot U)^{(r_{1})}\in G_{2}\) and \(R_{2}=e(g_{1},g_{2})^{r_{1}}\) where \(r_{1}\in Z_{p}^{*}\) is a random number. Then, the OBU chooses another random number \(x\in Z_{p}^{*}\) as its temporary short-time anonymous private key, computes the corresponding temporary public key \(Y=g_{1}^{x}\in G_{1}\). At last, the OBU uses its private key \(S_{i}\) \begin{table}
\begin{tabular}{l l} \hline \hline
**OBU(\(ID_{j}\), \(PID_{i}\))** & **RSU(\(ID_{j}\)) at Location \(L_{j}\)** \\ \hline \(R_{1}=(g_{2}^{h(L_{j})}\cdot U)^{(r_{1})}\), & \\ \(R_{2}=e(g_{1},g_{2})^{r}\), & \\ \(Y=g_{1}^{x}\), & \\ \(Sig_{OBU}=S_{i}^{(r_{1}+(R_{2}||T_{i}||Y))}\), & \\ \(C=\mathit{Enc}_{R_{2}}(Y,T_{i},Sig_{OBU},PID_{i})\). & \\ \hline \(R_{2}^{\prime}=e(A_{j},R_{1})\), & \\ \(R_{2}^{\prime}=e(S_{1},g_{2})^{r_{1}}\), & \\ \(Sig_{OBU}=S_{i}^{(r_{1}+(R_{2}||T_{i}||Y))}\), & \\ \(C=\mathit{Enc}_{R_{2}}(Y,T_{i},Sig_{OBU},PID_{i})\). & \\ \(\mathit{\xrightarrow{(R_{1},C)}}\) & \\ \(R_{2}^{\prime}=e(A_{j},R_{1})\), & \\ \(\mathit{decrypt}\) & \\ \(R_{2}^{\prime}\cdot e(g_{1},g_{2})^{r(R_{2}^{\prime}||T_{i}||Y)}\)\(\xrightarrow{\text{ }}e( Sig_{OBU},g_{2}^{h(PID_{i})}\cdot U)\), & \\ issue the certificate & \\ \(\mathit{Cert}_{i}=(L_{j},T_{i},Y,PID_{i}^{\prime},Sig_{RSU})\), & where \\ \(PID_{i}^{\prime}=Enc_{x_{j}}(T_{i},PID_{i})\) and & \\ \(Sig_{RSU}=A_{j}^{f(R_{2}||T_{i}||Y||PID_{i})}\). & \\ \(\mathit{\xrightarrow{(Cert_{i})}}\) & \\ \(\mathit{\xrightarrow{(Cert_{i})}}\) & \\ \hline \hline \end{tabular}
\end{table} 
Table 2: OBU temporary anonymous key generation. Figure 2: The Flowchart of Temporary Anonymous Key Generation. This flowchart describes how the OBU’s temporary anonymous key is generated. to make a signature \(Sig_{OBU}=S_{i}^{(r_{1}+f(R_{2}||T_{i}||Y))}\) where \(T_{i}\) is the current time-stamp, encrypts the signature as \(C=Enc_{R_{2}}(Y,T_{i},Sig_{OBU},PID_{i})\), and sends request information \((R_{1},C)\) to the \(RSU(ID_{j})\). * Step 2. After receiving the request, \(RSU(ID_{j})\) computes \(R_{2}^{\prime}=e(A_{j},R_{1})\), and decrypts the cipher text \(C\) with \(R_{2}^{\prime}\).