## 4 Review of a V2I Authentication Scheme
### User Login and Mutual Authentication  
Under this phase, \(VU\) performs user login and mutual authentication with RSU through TA and generates the session key through the authentication process. Step 1. \(\text{OBU}\rightarrow\text{RSU}\): \(m_{1}=\left\{VID_{i},Q_{1},C_{1},ctr^{*}\right\}\)  
\(VU\) inserts its \(SC\) into the OBU, and then inputs identity \(ID_{v}\) and password \(PW_{v}\). Then, OBU calculates \(N_{1}=PID\oplus h(ID_{v}\|PW_{v})\) and verifies \(AID?=h(ID_{v}\|PW_{v}\|N_{1})\). If the verification is not valid, \(VU\) re-enters the login credentials until exceeding the _maximum limit_ (\(\triangle_{max}\)). If the login is successful, OBU randomly selects a \((VID_{i},\beta_{i})\) pair and chooses two fresh random numbers \(N_{2}\) and \(N_{3}\). Then, OBU calculates \(CK_{VT}=h(ID_{v}\|\beta_{i})\), \(Q_{1}=CK_{VT}\oplus h(N_{2}\|ID_{v})\) and the verification parameter \(C_{1}=h\left(ID_{v}\|h(N_{2}\|ID_{v})\|CK_{VT}\|ctr^{*}\right)\), where \(ctr^{*}=ctr+N_{3}\). Finally, \(VU\) transmits the service access request \(m_{1}=\left\{VID_{i},Q_{1},C_{1},\right.\)\(ctr^{*}\right\}\) to RSU. Step 2. \(\text{RSU}\rightarrow\text{TA}\): \(m_{2}=\left\{VID_{i},Q_{1},C_{1},RID_{i},Q_{2},C_{2},ctr^{*}\right\}\)  
While receiving messages from \(VU\), RSU randomly chooses a \((RID_{i},\alpha_{i})\) pair and generates a random number \(N_{4}\). Then, RSU calculates \(CK_{RT}=h(ID_{r}\|\alpha_{i})\), \(Q_{2}=CK_{RT}\oplus h(N_{4}\|ID_{r})\) and \(C_{2}=h(ID_{r}\|CK_{RT}\|h(N_{4}\|ID_{r}))\). Finally, RSU sends the message of authentication request \(m_{2}=\left\{VID_{i},Q_{1},C_{1},RID_{i},Q_{2},C_{2},ctr^{*}\right\}\) to a centralized TA. Step 3. \(\text{TA}\rightarrow\text{RSU}\): \(m_{3}=\left\{RID_{i}^{*},VID_{i}^{*},Q_{3},Q_{4},Q_{5},Q_{6},C_{3},C_{4}\right\}\)  
While receiving messages from RSU, TA checks whether \(ctr<ctr^{*}\) is fresh or not. If not, TA rejects it. Otherwise, TA uses its secret key \(K\) to decrypt \(VID_{i}\) and \(RID_{i}\), and obtains \((ID_{v},ID_{TA},\beta_{i})\) and \((ID_{r},ID_{TA},\alpha_{i})\), respectively. TA verifies whether \(h(ID_{r}\|K)\) and \(h(ID_{v}\|K)\) are available in its database or not. If not, the session is stopped. Otherwise, TA calculates \(CK_{VT}=h(ID_{v}\|\beta_{i})\), \(CK_{RT}=h(ID_{r}\|\alpha_{i})\), \(h(N_{2}\|ID_{v})=CK_{VT}\oplus Q_{1}\) and \(h(N_{4}\|ID_{r})=CK_{RT}\oplus Q_{2}\). Subsequently, TA updates \(ctr\) as \(ctr=ctr^{*}\) on successful verification of \(C_{2}?=h(ID_{r}\|CK_{RT}\|h(N_{4}\|ID_{r}))\) and further verifies \(C_{1}?=h(ID_{v}\|h(N_{2}\|ID_{v})\|CK_{VT}\|ctr^{*})\). TA computes \(\alpha_{i}^{*}=N_{5}\), \(\beta_{i}^{*}=N_{6}\), \(RID_{i}^{*}=E_{K}[ID_{r}\|ID_{TA}\|\alpha_{i}^{*}]\), \(VID_{i}^{*}=E_{K}[ID_{v}\|ID_{TA}\|\beta_{i}^{*}]\), \(Q_{3}=N_{2}\oplus N_{7}\oplus CK_{RT}\oplus ID_{v}\), \(Q_{4}=N_{4}\oplus N_{7}\oplus CK_{VT}\oplus ID_{r}\), \(Q_{5}=h(CK_{RT})\oplus\alpha_{i}^{*}\) and \(Q_{6}=h(CK_{VT})\oplus\beta_{i}^{*}\) where \(N_{5}\), \(N_{6}\) and \(N_{7}\) are random numbers. TA calculates the verification parameters \(C_{3}=h\left(RID_{i}^{*}\|(N_{2}\oplus N_{7}\oplus ID_{v})\|\alpha_{i}^{*}\right)\) and \(C_{4}=h(VID_{i}^{*}\|(N_{4}\oplus N_{7}\oplus ID_{r})\|\beta_{i}^{*}\|ctr)\) for RSU and VU, respectively. Finally, TA transmits the message of authentication response \(m_{3}=\left\{RID_{i}^{*},VID_{i}^{*},Q_{3},Q_{4},Q_{5},Q_{6},C_{3},C_{4}\right\}\) to RSU. Step 4. \(\text{RSU}\rightarrow\text{OBU}\): \(m_{4}=\left\{VID_{i}^{*},Q_{4},Q_{6},C_{4},Auth\right\}\)  
RSU computes \((N_{2}\oplus N_{7}\oplus ID_{v})=Q_{3}\oplus CK_{RT}\) and \(\alpha_{i}^{*}=Q_{5}\oplus h(CK_{RT})\). Subsequently, RSU computes the session key \(SK=h(N_{2}\oplus N_{4}\oplus N_{7}\oplus ID_{v}\oplus ID_{r})\) and verifies\(h\big{(}SK\|ctr^{*}\big{)}\) and \(C_{3}?=h\Big{(}RID_{i}^{*}\|(N_{2}\oplus N_{7}\oplus ID_{v})\|\alpha_{i}^{*}\Big{)}\). Finally, RSU updates \(RID_{i}^{new}=RID_{i}^{*},\alpha_{i}^{new}=\alpha_{i}^{*}\) and transmits \(m_{4}=\Big{\{}VID_{i}^{*},Q_{4},Q_{6},C_{4},Auth\Big{\}}\) to \(VIU\). Step 5.