## 5 Security Proof and Analysis
### Security Proof  
In this game, the adversary \(\mathcal{A}\) is allowed to execute the queries listed below. * _Setup Oracle_: When \(\mathcal{A}\) revokes the query, \(\mathcal{C}\) sends the generated private key and the corresponding system parameters to \(\mathcal{A}\). * \(H0\)_Oracle_: \(\mathcal{C}\) randomly selects a point \(d\in Z_{q}\) and includes \(\{m,d\}\) in its list \(L_{H0}\). Then it returns \(d\) to \(\mathcal{A}\) when \(\mathcal{A}\) revokes the query. * \(H1\)_Oracle_: \(\mathcal{C}\) randomly selects a number \(d\in Z_{q}\) and includes \(\{m,d\}\) in its list \(L_{H1}\). Then it returns \(d\) to \(\mathcal{A}\) when \(\mathcal{A}\) revokes the query. * \(H2\)_Oracle_: \(\mathcal{C}\) randomly selects a point \(d\in Z_{q}\) and includes \(\{m,d\}\) in its list \(L_{H2}\). Then it returns \(d\) to \(\mathcal{A}\) when \(\mathcal{A}\) revokes the query. * _Sign Oracle_: Based on the \(M_{i}\) sent by \(\mathcal{A}\), \(\mathcal{C}\) computes a \(msg:\{M_{i},T_{t},PK_{i},R_{i},PID_{i}\}\). Then \(\mathcal{C}\) returns \(\{M_{i},T_{t},PK_{i},R_{i},PID_{i}\}\) to \(\mathcal{A}\) when \(\mathcal{A}\) revokes the query. If the adversary \(\mathcal{A}\) has the ability to fabricate a legitimate login request message, it indicates a violation of the proposed secure communication scheme by \(\mathcal{A}\). We define \(\Phi(\mathcal{A})\) as the probability of \(\mathcal{A}\) violating the scheme. Definition 2: For any polynomial adversary \(\mathcal{A}\), our scheme is considered secure if the probability \(\Phi(\mathcal{A})\) is negligible. By conducting a security evaluation of our scheme under the random oracle model, we establish the following theorem. Theorem 1: _The proposed scheme exhibits security within the random oracle model._  
Proof: Suppose there is an adversary \(\mathcal{A}\) who has the ability to forge a \(msg:\{M_{i},T_{t},PK_{i},R_{i},PID_{i}\}\). Our signature scheme is executed by a challenger \(\mathcal{C}\) that we construct. By performing the following queries revoked by \(\mathcal{A}\), challenger \(\mathcal{C}\) can leverage \(\mathcal{A}\) as a subroutine to solve the ECDLP problem with a probability that is not negligible. Setup OracleFirst, a key parameter \(k\) is provided as input. Subsequently, \(\mathcal{C}\) selects a random number \(s\) as its private key and calculates \(P_{pub}=s\cdot P\). \(\mathcal{C}\) then transmits \(\{P_{pub},p,q,a,b,P,H0,H1,H2\}\) to \(\mathcal{A}\). \(H0\)_Oracle_: \(\mathcal{C}\) maintains an initially empty list \(L_{H0}:(sk_{i},L_{i},T_{t},h_{0,j})\). When \(\mathcal{A}\) makes a query with \((sk_{i},L_{i},T_{t})\), \(\mathcal{C}\) verifies if \(L_{H0}:(sk_{i},L_{i},T_{t},h_{0,j})\) already exists in \(L_{H0}\). If the entry exists, \(\mathcal{C}\) provides the corresponding \(h_{0,j}\). Otherwise, \(\mathcal{C}\) generates a random \(h_{0,j}=H0(sk_{i}\cdot L_{i}||T_{t})\), inserts \(L_{H0}:(sk_{i},L_{i},T_{t},h_{0,j})\) into the list and yields \(h_{0,j}\) to \(\mathcal{A}\). \(H1\)_Oracle_: \(\mathcal{C}\) maintains an initially empty list \(L_{H1}:(T_{t},h_{1,j})\). When \(\mathcal{A}\) makes a query with \((T_{t})\), \(\mathcal{C}\) verifies if \(L_{H1}:(T_{t},h_{1,j})\) already exists in \(L_{H1}\). If the entry exists, \(\mathcal{C}\) provides the corresponding \(h_{1,j}\). Otherwise, \(\mathcal{C}\) generates a random \(h_{1,j}=H1(T_{t})\), inserts \(L_{H1}:(T_{t},h_{1,j})\) into the list and yields \(h_{1,j}\) to \(\mathcal{A}\). \(H2\)_Oracle_: \(\mathcal{C}\) maintains an initially empty list \(L_{H2}:(PID_{i},L_{i},T_{t},R_{i}.PK_{i},M_{i},h_{2,i})\). When \(\mathcal{A}\) makes a query with \((PID_{i},L_{i},T_{t},R_{i}.PK_{i},M_{i})\), \(\mathcal{C}\) verifies if \(L_{H2}:(PID_{i},L_{i},T_{t},R_{i}.PK_{i},M_{i})\) already exists in \(L_{H2}\). If the entry exists, \(\mathcal{C}\) provides the corresponding \(h_{2,j}\).