# An Efficient and Secure Certificateless Aggregate Signature Scheme for Vehicular Ad hoc Networks
## 5 Security Analysis
: _Utilizing a non-negligible probability \(n_{\mathit{Omb}}\), if Type 2 (\(FGR_{2}\)) forger wants to forge our certificateless aggregate signature within a polynomial time successfully, then there will be a challenger ([PERSON]) who can serve his services as a facilitator for solving the hyperelliptic curve discrete logarithm problem with the probability \(\left(1-\frac{1}{X}\right)\left(\frac{n_{\mathit{Omb}}}{\mathit{X}\mathit{U}_{ \mathit{H_{usr}}}}\right)\left(1-\frac{1}{\mathit{X}\mathit{U}_{\mathit{ SIGG}}+\mathit{S_{\mathit{SIGG}}}+1}\right)\), where \(Q_{\mathit{SIGG}},Q_{\mathit{SIGG}},X,n_{\mathit{Omb}}\) and \(Q_{\mathit{H_{usr}}}\) represent Signature Generation Query, Signature Verifications Query, Natural Logarithm, Non-negligible Probability, and Hash Queries, respectively._  
Proof. : A facilitator called \(\mathrm{FCR}\) will solve the hyperelliptic curve discrete logarithm problem if he receives \(\mathrm{D},\mathrm{HDLP}=\mathrm{x}.D\) and his task will be to extract \(x\) from \(HDLP\). \(\square\)  
**Setup:**\(\mathrm{FCR}\) calls the Setup algorithm in which he sends the param \(\mathrm{PB_{frm}}\) and \(\mathrm{Dot}_{\mathrm{p}}\) to \(\mathrm{FGR}_{2}\)  
**Query Phase:**\(\mathrm{FGR}_{2}\) selects the identity \(\mathrm{ID_{usst}}\) and \(\mathrm{FCR}\) has no access to \(\mathrm{ID_{usst}}\). Then, \(FCR\) selects the identity \(ID_{\mathit{usst}}^{*}\) and performs the following queries with \(FGR_{2}\):  
\(\mathrm{H_{01}Query}\): \(\mathrm{FCR}\) sets a list (\(\mathrm{L_{H_{1 usr}}}\)), which is empty. When \(\mathrm{FGR}_{2}\) generates this query, \(\mathrm{FCR}\) checks the tuple in \(\mathrm{L_{H_{1 usr}}}\). If the value \(\mathrm{H_{1 usr}}\) exists, then it sends \(\mathrm{H_{1 usr}}\) to \(\mathrm{FGR}_{1}\); otherwise, it randomly picks \(\mathrm{H_{1 usr}}\) from \({F^{\mathit{ield}}}_{p}\), sends \(\mathrm{H_{1 usr}}\) to \(\mathrm{FGR}_{2}\) and updates it randomly picks \(\mathrm{H_{1 usr}}\) from \({F^{\mathit{ield}}}_{p}\), sends \(\mathrm{H_{1 usr}}\) to \(\mathrm{FGR}_{2}\) and updates value \(\mathrm{H_{1 usr}}\). \(\mathrm{H_{02}Query}\): \(\mathrm{FCR}\) sets an empty list (\(\mathrm{L_{H_{2 usr}}}\)). When \(FGR_{2}\) generates this query, \(FCR\) checks the tuple \(\left(EID_{\mathit{usr}},F_{\mathit{usr}},Dot_{\mathit{pb}},H_{\mathit{last}}\right)\) in \(L_{H_{2 usr}}\). If the value \(H_{2 usr}\) exists, then it sends \(H_{2 usr}\) to \(FGR_{2}\); otherwise, it randomly picks \(H_{2 usr}\) from \({F^{\mathit{ield}}}_{p}\), sends \(H_{2 usr}\) to \(FGR_{2}\) and updates \(L_{H_{2 usr}}\) with the value \(H_{2 usr}\). \(\mathrm{H_{03}Query}\): \(\mathrm{FCR}\) sets an empty list (\(\mathrm{L_{H_{3 usr}}}\)). When \(FGR_{2}\) generates this query, \(FCR\) checks the tuple \(\left(EID_{\mathit{usr}},F_{\mathit{usr}},L_{\mathit{usr}},W_{\mathit{OBU}},H _{\mathit{3 usr}}\right)\) in \(L_{H_{3 usr}}\). If the value \(H_{3 usr}\) exists, then it sends \(H_{3 usr}\) to \(FGR_{2}\); otherwise, it randomly picks \(H_{3 usr}\) from \({F^{\mathit{ield}}}_{p}\), sends \(H_{3 usr}\) to \(FGR_{2}\) and updates \(L_{H_{3 usr}}\) with the value \(H_{3 usr}\). **Secret Value Generation (SVG) Query:**\(\mathrm{FCR}\) sets an empty list (\(\mathrm{L_{SVG}}\)). When \(FGR_{2}\) generates this query, \(FCR\) checks the value (\(G_{\mathit{usr}}\)) in \(L_{\mathrm{SVG}}\). If the value exists, then itsends \(G_{ust}\) to \(FGR_{2}\); otherwise, it randomly picks \(G_{usr}\) from \(F^{ield}{}_{p}\), sends \(G_{usr}\) to \(FGR_{2}\) and updates \(L_{\text{SVG}}\) with the value \(G_{usr}\). **Public key Generation (PBKG)Query:** FCR sets an empty list (L\({}_{\text{PBKG}}\)). When \(FGR_{2}\) generates this query, \(FCR\) checks the value \((F_{usr},L_{usr})\) in \(L_{PBKG}\).