# An Identity-Based Anti-Quantum Privacy-Preserving Blind Authentication in Wireless Sensor Networks
## 3 Proposed IDBS-NTRU Scheme
### An E-Payment Protocol  
In this section, we design an e-payment protocol based on NTRU-IDBS scheme, which plays an important role in e-commerce. We will still follow the notations in Section 2.1. As described in Figure 4, \(A\)'s account belongs to \(bankA\), \(B\)'s account belongs to \(BankB\). Firstly, \(A\) draws e-money from \(BankA\). Secondly, \(A\) pays the money to \(B\). Finally, \(B\) deposits the money to \(BankB\). Following is the details:  
Figure 4: A buys goods from B.  
1. \(T\) produces and sends keys * \(T\) runs the algorithm \(ST_{\epsilon}\) and produces the system parameter \(params\) and master key \(mk\). * \(T\) runs algorithm \(EX_{\epsilon}\) and generates the keys for \(BankA\) and \(BankB\). * \(BankA\)'s public key and private key are \(id_{BankA},sk_{BankA}\) respectively. * \(BankB\)'s public key and private key are \(id_{BankB},sk_{BankB}\) respectively. * \(T\) distributes the corresponding private keys to \(BankA\) and \(BankB\).
2. user opens an account from Bank * \(A\) and \(B\) open an account using their real identity, such as passport, ssn, address, email, male, age, and so on, their banks will give them their account information respectively.
3. \(A\) draws e-money from \(BankA\) * \(A\) send their account information to \(BankA\). * \(BankA\) will verify whether he is a valid user. If it is, continue. Otherwise, abort. * \(A\) wants to draw money \(m\), he will randomly choose vectors \(\mathbf{y}_{1},\mathbf{y}_{2},\mathbf{\alpha},\mathbf{\gamma}\), computes \(\mathbf{e}=H^{\prime}(\mathbf{y}_{1}+h\mathbf{y}_{2}+h\mathbf{\gamma}+\mathbf{\alpha}-\mathbf{\alpha} H(id),m)\) and \(\mathbf{e}^{*}=\mathbf{e}-\mathbf{\alpha}\) to obtain \(\mathbf{e}^{*}\). * \(A\) sends \(m\) with the blinded note \(\mathbf{e}^{*}\) to \(BankA\). * \(BankA\) computes \(\mathbf{\zeta}_{1}^{*}=\mathbf{y}_{1}+s_{1}\mathbf{e}^{*}\), \(\mathbf{\zeta}_{2}^{*}=\mathbf{y}_{2}+s_{2}\mathbf{e}^{*}\) for \(\mathbf{e}^{*}\), and generates the signatures \(\mathbf{\zeta}_{1}^{*}\) and \(\mathbf{\zeta}_{2}^{*}\), then records on the account of \(A\). * Next, the bank returns \(\mathbf{\zeta}_{1}^{*},\mathbf{\zeta}_{2}^{*}\) to \(A\). * \(A\) computes \(\mathbf{\zeta}_{1}=\mathbf{\zeta}_{1}^{*}+\mathbf{\alpha}\) and \(\mathbf{\zeta}_{2}=\mathbf{\zeta}_{2}^{*}+\mathbf{\gamma}\) to get \(\mathbf{\zeta}_{1},\mathbf{\zeta}_{2}\).
4. \(A\) pays the e-money to \(B\) * \(A\) sends \(m,\mathbf{e},\mathbf{\zeta}_{1},\mathbf{\zeta}_{2},id\) to \(B\). * \(B\) computes \(||(\mathbf{\zeta}_{1},\mathbf{\zeta}_{2})||\leq 4s\sqrt{2N}\), \(H^{{}^{\prime}}(h*\mathbf{\zeta}_{2}+\mathbf{\zeta}_{1}-H(id)*\mathbf{e},m)=\mathbf{e}\) and checks whether all of them are true. If all are true, accept it, otherwise, reject them.
5. \(B\) deposits the e-money * \(B\) will send \(m,\mathbf{e},\mathbf{\zeta}_{1},\mathbf{\zeta}_{2},id\) to \(BankB\). * \(BankB\) computes and checks whether \(||(\mathbf{\zeta}_{1},\mathbf{\zeta}_{2})||\leq 4s\sqrt{2N}\), and \(H^{{}^{\prime}}(h*\mathbf{\zeta}_{2}+\mathbf{\zeta}_{1}-H(id)\mathbf{e},m)=\mathbf{e}\) are true, if all of them are true, continue; otherwise abort. * \(BankB\) checks whether the e-money is in the list. If it is, abort, otherwise, continue. * \(BankB\) will deposit the e-money on [PERSON]'s account. * \(BankB\) will send a notice to \(B\) that \(B\) has received the e-money. * \(B\) will send the goods or receipt to \(A\).